diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5c022f..4903665 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
 * Don't indent cascades farther than their receiver method chains.
 * Optimize line splitting cascades (#811).
 * Split empty catch blocks with finally clauses (#1029).
+* Split empty catch blocks with catches after them.
 
 # 2.0.1
 
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index c97f0b5..f6d5a94 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -3419,11 +3419,15 @@
           ifStatement.thenStatement == node;
     }
 
-    // Force a split in an empty catch if there is a finally:
+    // Force a split in an empty catch if there is a finally or other catch
+    // after it:
     if (node.parent is CatchClause && node.parent!.parent is TryStatement) {
       var tryStatement = node.parent!.parent as TryStatement;
-      return tryStatement.finallyBlock != null &&
-          tryStatement.catchClauses.any((clause) => clause.body == node);
+
+      // Split the catch if there is something after it, a finally or another
+      // catch.
+      return tryStatement.finallyBlock != null ||
+          node != tryStatement.catchClauses.last.body;
     }
 
     return false;
diff --git a/test/regression/1000/1029.unit b/test/regression/1000/1029.unit
index 8dda931..ffff020 100644
--- a/test/regression/1000/1029.unit
+++ b/test/regression/1000/1029.unit
@@ -14,4 +14,21 @@
   } finally {
     cleanupSomething();
   }
+}
+>>>
+void main() {
+  try {
+    doSomething();
+  } on FooException {} on BarException {
+    doSomething();
+  }
+}
+<<<
+void main() {
+  try {
+    doSomething();
+  } on FooException {
+  } on BarException {
+    doSomething();
+  }
 }
\ No newline at end of file
diff --git a/test/splitting/statements.stmt b/test/splitting/statements.stmt
index dde279c..c5f19dc 100644
--- a/test/splitting/statements.stmt
+++ b/test/splitting/statements.stmt
@@ -99,4 +99,12 @@
 } catch (err3) {
 } finally {
   ;
-}
\ No newline at end of file
+}
+>>> split leading empty catches if there are multiple
+try {;} catch (err1) {} catch (err2) {} catch (err3) {}
+<<<
+try {
+  ;
+} catch (err1) {
+} catch (err2) {
+} catch (err3) {}
\ No newline at end of file
