.class public LB134061982_2; .super Ljava/lang/Object; .method public constructor ()V .registers 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static run(I)V .registers 4 # Registers: # * v0 = 0/null # * v1 = "outer" catch value to operate on # * v2 = exception value for inner catch # * v3 = p0 = input for two legs. const v0, 0 # Start with r1 == null const v1, 0 if-eqz p0, :direct_leg goto :indirect_leg :direct_leg throw v0 :indirect_leg # Make r1 not-reference. const v1, 1 throw v0 :end return-void :catch_inner move-exception v2 # r2 should not be primitive, so this should hard-fail if reached. add-int/lit8 v2, v2, 0x1 goto :end :catch_outer # Just some random call. invoke-virtual {v1}, Ljava/io/PrintStream;->println()V goto :end # Direct leg is directly covered by catch_outer. .catchall {:direct_leg .. :indirect_leg} :catch_outer # Indirect leg is directly covered by catch_inner. # * Covered by unresolved and resolved exception classes -> live. .catch Ldoes/not/ResolveException; {:indirect_leg .. :end} :catch_inner .catch Ljava/lang/ArithmeticException; {:indirect_leg .. :end} :catch_inner # catch_inner is covered by catch_outer. .catchall {:catch_inner .. :catch_outer} :catch_outer .end method