Home | History | Annotate | Download | only in expected
      1 
      2 method A.<init>():void
      3 {
      4 	.src "tryCatch.java"
      5 	.line 2
      6 	    0| move-object/16 v15, v25
      7 	    3| move-object/16 v14, v15
      8 	    6| move-object/16 v13, v14
      9 	.prologue_end
     10 	.line 2
     11 	    9| move-object v11, v13
     12 	.local v11, "this", A
     13 	   10| move-object v12, v11
     14 	   11| invoke-direct {v12}, java.lang.Throwable.<init>():void
     15 	   14| return-void
     16 }
     17 
     18 method B.<init>():void
     19 {
     20 	.src "tryCatch.java"
     21 	.line 6
     22 	    0| move-object/16 v15, v25
     23 	    3| move-object/16 v14, v15
     24 	    6| move-object/16 v13, v14
     25 	.prologue_end
     26 	.line 6
     27 	    9| move-object v11, v13
     28 	.local v11, "this", B
     29 	   10| move-object v12, v11
     30 	   11| invoke-direct {v12}, java.lang.Throwable.<init>():void
     31 	   14| return-void
     32 }
     33 
     34 method TryCatch.<init>():void
     35 {
     36 	.src "tryCatch.java"
     37 	.line 10
     38 	    0| move-object/16 v15, v25
     39 	    3| move-object/16 v14, v15
     40 	    6| move-object/16 v13, v14
     41 	.prologue_end
     42 	.line 10
     43 	    9| move-object v11, v13
     44 	.local v11, "this", TryCatch
     45 	   10| move-object v12, v11
     46 	   11| invoke-direct {v12}, java.lang.Object.<init>():void
     47 	   14| return-void
     48 }
     49 
     50 method TryCatch.foo(int):int
     51 {
     52 	.params "?"
     53 	.src "tryCatch.java"
     54 	.line 27
     55 	    0| move/16 v15, v27
     56 	    3| move/16 v14, v15
     57 	    6| move/16 v13, v14
     58 	.prologue_end
     59 	.line 27
     60 	    9| move v9, v13
     61 	.local v9, "x", int
     62 	   10| move v10, v9
     63 	   11| if-lez v10, Label_4
     64 	.line 28
     65 	   13| move v10, v9
     66 	   14| packed-switch v10, Label_5
     67 	.line 31
     68 	   17| const/4 v10, #+1 (0x00000001 | 1.40130e-45)
     69 	   18| move v9, v10
     70 Label_1:
     71 	.line 34
     72 	.end_local v9
     73 	   19| return v9
     74 Label_2:
     75 	.line 29
     76 	.restart_local v9
     77 	   20| new-instance v10, A
     78 	   22| move-object v12, v10
     79 	   23| move-object v10, v12
     80 	   24| move-object v11, v12
     81 	   25| invoke-direct {v11}, A.<init>():void
     82 	   28| throw v10
     83 Label_3:
     84 	.line 30
     85 	   29| new-instance v10, B
     86 	   31| move-object v12, v10
     87 	   32| move-object v10, v12
     88 	   33| move-object v11, v12
     89 	   34| invoke-direct {v11}, B.<init>():void
     90 	   37| throw v10
     91 Label_4:
     92 	.line 34
     93 	   38| const/4 v10, #+0 (0x00000000 | 0.00000)
     94 	   39| move v9, v10
     95 	   40| goto/16 Label_1
     96 Label_5: <aligned>
     97 	.line 28
     98 	   42| packed-switch-payload
     99 		    1: Label_2
    100 		    2: Label_3
    101 }
    102 
    103 method TryCatch.main(java.lang.String[]):void
    104 {
    105 	.params "?"
    106 	.src "tryCatch.java"
    107 	.line 15
    108 	    0| move-object/16 v15, v29
    109 	    3| move-object/16 v14, v15
    110 	    6| move-object/16 v13, v14
    111 	.prologue_end
    112 	.line 15
    113 	    9| move-object v7, v13
    114 	.local v7, "args", java.lang.String[]
    115 	   10| const/4 v10, #+0 (0x00000000 | 0.00000)
    116 	.try_begin_1
    117 	   11| invoke-static {v10}, TryCatch.foo(int):int
    118 	.try_end_1
    119 	  catch(B) : Label_3
    120 	  catch(A) : Label_4
    121 	  catch(...) : Label_5
    122 	   14| move-result v10
    123 Label_1:
    124 	.line 18
    125 	.line 22
    126 	   15| sget-object v10, java.lang.System.out
    127 	   17| const-string v11, "finally\n"
    128 	   19| const/4 v12, #+0 (0x00000000 | 0.00000)
    129 	   20| new-array v12, v12, java.lang.Object[]
    130 	   22| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    131 	   25| move-result-object v10
    132 Label_2:
    133 	.line 23
    134 	.line 24
    135 	   26| return-void
    136 Label_3:
    137 	.line 16
    138 	   27| move-exception v10
    139 	   28| move-object v8, v10
    140 	.try_begin_2
    141 	.line 17
    142 	.local v8, "ex", B
    143 	   29| sget-object v10, java.lang.System.out
    144 	   31| const-string v11, "catch: B\n"
    145 	   33| const/4 v12, #+0 (0x00000000 | 0.00000)
    146 	   34| new-array v12, v12, java.lang.Object[]
    147 	   36| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    148 	.try_end_2
    149 	  catch(A) : Label_4
    150 	  catch(...) : Label_5
    151 	   39| move-result-object v10
    152 	   40| goto/16 Label_1
    153 Label_4:
    154 	.line 19
    155 	.end_local v8
    156 	   42| move-exception v10
    157 	   43| move-object v8, v10
    158 	.try_begin_3
    159 	.line 20
    160 	.local v8, "ex", A
    161 	   44| sget-object v10, java.lang.System.out
    162 	   46| const-string v11, "catch: A\n"
    163 	   48| const/4 v12, #+0 (0x00000000 | 0.00000)
    164 	   49| new-array v12, v12, java.lang.Object[]
    165 	   51| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    166 	.try_end_3
    167 	  catch(...) : Label_5
    168 	   54| move-result-object v10
    169 	.line 22
    170 	   55| sget-object v10, java.lang.System.out
    171 	   57| const-string v11, "finally\n"
    172 	   59| const/4 v12, #+0 (0x00000000 | 0.00000)
    173 	   60| new-array v12, v12, java.lang.Object[]
    174 	   62| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    175 	   65| move-result-object v10
    176 	.line 23
    177 	   66| goto/16 Label_2
    178 Label_5:
    179 	.line 22
    180 	.end_local v8
    181 	   68| move-exception v10
    182 	   69| move-object v9, v10
    183 	   70| sget-object v10, java.lang.System.out
    184 	   72| const-string v11, "finally\n"
    185 	   74| const/4 v12, #+0 (0x00000000 | 0.00000)
    186 	   75| new-array v12, v12, java.lang.Object[]
    187 	   77| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    188 	   80| move-result-object v10
    189 	   81| move-object v10, v9
    190 	   82| throw v10
    191 }
    192