Blort.test1:(I)V: regs: 0004; ins: 0001; outs: 0000 0000: move v0, v3 0001: const/4 v2, #int 0 // #0 0002: move v0, v2 0003: return-void Blort.test2:([Ljava/lang/String;)V: regs: 0004; ins: 0001; outs: 0000 0000: move-object v0, v3 0001: move-object v2, v0 0002: array-length v2, v2 0003: move v1, v2 0004: return-void 0005: move-exception v2 0006: move-object v1, v2 0007: invoke-static {}, Blort.caught:()V 000a: goto 0004 // -0006 catches tries: try 0002..0003 catch java.lang.RuntimeException -> 0005 Blort.test3:()V: regs: 0002; ins: 0000; outs: 0001 0000: const/4 v1, #int 1 // #1 0001: invoke-static {v1}, Blort.zorch:(I)V 0004: return-void 0005: move-exception v1 0006: move-object v0, v1 0007: invoke-static {}, Blort.caught:()V 000a: goto 0004 // -0006 catches tries: try 0001..0004 catch java.lang.RuntimeException -> 0005 Blort.test4:([Ljava/lang/String;)V: regs: 0004; ins: 0001; outs: 0001 0000: move-object v0, v3 0001: move-object v2, v0 0002: array-length v2, v2 0003: invoke-static {v2}, Blort.zorch:(I)V 0006: return-void 0007: move-exception v2 0008: move-object v1, v2 0009: invoke-static {}, Blort.caught:()V 000c: goto 0006 // -0006 catches tries: try 0002..0006 catch java.lang.RuntimeException -> 0007