diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
index ee85d7e..a451d14 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
@@ -53,6 +53,13 @@
       assert instruction.getBlock() == this;
       assert !instruction.isArgument() || argumentsAllowed;
       assert !instruction.isDebugLocalRead() || !instruction.getDebugValues().isEmpty();
+      if (instruction.isMoveException()) {
+        assert instruction == entry();
+        for (BasicBlock pred : getPredecessors()) {
+          assert pred.hasCatchSuccessor(this)
+              || (pred.isTrivialGoto() && pred.endOfGotoChain() == this);
+        }
+      }
       if (!instruction.isArgument()) {
         argumentsAllowed = false;
       }
@@ -230,6 +237,7 @@
     successors.set(index2, tmp);
   }
 
+  // TODO(b/116174212): Remove the predecessor pointer from the old successor block.
   public void replaceSuccessor(BasicBlock block, BasicBlock newBlock) {
     assert successors.contains(block) : "attempt to replace non-existent successor";
 
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRCode.java b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
index cc3cb78..19bf655 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRCode.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
@@ -572,6 +572,10 @@
   private boolean validThrowingInstructions() {
     for (BasicBlock block : blocks) {
       if (block.hasCatchHandlers()) {
+        for (BasicBlock handler : block.getCatchHandlers().getUniqueTargets()) {
+          // Ensure that catch handlers are always split edges for a well-formed SSA graph.
+          assert handler.getPredecessors().size() == 1;
+        }
         boolean seenThrowing = false;
         for (Instruction instruction : block.getInstructions()) {
           if (instruction.instructionTypeCanThrow()) {
