Home | History | Annotate | Download | only in expected
      1 
      2 method A.<init>():void
      3 {
      4 ............................. begin block 1 .............................
      5 	.src "tryCatch.java"
      6 	.line 2
      7 	.prologue_end
      8 	.line 2
      9 	    0| move-object v0, v2
     10 	.local v0, "this", A
     11 	    1| move-object v1, v0
     12 	    2| invoke-direct {v1}, java.lang.Throwable.<init>():void
     13 .............................. end block 1 ..............................
     14 ............................. begin block 2 .............................
     15 	    5| return-void
     16 .............................. end block 2 ..............................
     17 }
     18 
     19 method B.<init>():void
     20 {
     21 ............................. begin block 1 .............................
     22 	.src "tryCatch.java"
     23 	.line 6
     24 	.prologue_end
     25 	.line 6
     26 	    0| move-object v0, v2
     27 	.local v0, "this", B
     28 	    1| move-object v1, v0
     29 	    2| invoke-direct {v1}, java.lang.Throwable.<init>():void
     30 .............................. end block 1 ..............................
     31 ............................. begin block 2 .............................
     32 	    5| return-void
     33 .............................. end block 2 ..............................
     34 }
     35 
     36 method TryCatch.<init>():void
     37 {
     38 ............................. begin block 1 .............................
     39 	.src "tryCatch.java"
     40 	.line 10
     41 	.prologue_end
     42 	.line 10
     43 	    0| move-object v0, v2
     44 	.local v0, "this", TryCatch
     45 	    1| move-object v1, v0
     46 	    2| invoke-direct {v1}, java.lang.Object.<init>():void
     47 .............................. end block 1 ..............................
     48 ............................. begin block 2 .............................
     49 	    5| return-void
     50 .............................. end block 2 ..............................
     51 }
     52 
     53 method TryCatch.foo(int):int
     54 {
     55 ............................. begin block 1 .............................
     56 	.params "?"
     57 	.src "tryCatch.java"
     58 	.line 27
     59 	.prologue_end
     60 	.line 27
     61 	    0| move v0, v4
     62 	.local v0, "x", int
     63 	    1| move v1, v0
     64 	    2| if-lez v1, Label_4
     65 .............................. end block 1 ..............................
     66 ............................. begin block 2 .............................
     67 	.line 28
     68 	    4| move v1, v0
     69 	    5| packed-switch v1, Label_5
     70 .............................. end block 2 ..............................
     71 ............................. begin block 3 .............................
     72 	.line 31
     73 	    8| const/4 v1, #+1 (0x00000001 | 1.40130e-45)
     74 	    9| move v0, v1
     75 .............................. end block 3 ..............................
     76 ............................. begin block 4 .............................
     77 Label_1:
     78 	.line 34
     79 	.end_local v0
     80 	   10| return v0
     81 .............................. end block 4 ..............................
     82 ............................. begin block 5 .............................
     83 Label_2:
     84 	.line 29
     85 	.restart_local v0
     86 	   11| new-instance v1, A
     87 .............................. end block 5 ..............................
     88 ............................. begin block 6 .............................
     89 	   13| move-object v3, v1
     90 	   14| move-object v1, v3
     91 	   15| move-object v2, v3
     92 	   16| invoke-direct {v2}, A.<init>():void
     93 .............................. end block 6 ..............................
     94 ............................. begin block 7 .............................
     95 	   19| throw v1
     96 .............................. end block 7 ..............................
     97 ............................. begin block 8 .............................
     98 Label_3:
     99 	.line 30
    100 	   20| new-instance v1, B
    101 .............................. end block 8 ..............................
    102 ............................. begin block 9 .............................
    103 	   22| move-object v3, v1
    104 	   23| move-object v1, v3
    105 	   24| move-object v2, v3
    106 	   25| invoke-direct {v2}, B.<init>():void
    107 .............................. end block 9 ..............................
    108 ............................. begin block 10 .............................
    109 	   28| throw v1
    110 .............................. end block 10 ..............................
    111 ............................. begin block 11 .............................
    112 Label_4:
    113 	.line 34
    114 	   29| const/4 v1, #+0 (0x00000000 | 0.00000)
    115 	   30| move v0, v1
    116 	   31| goto Label_1
    117 .............................. end block 11 ..............................
    118 Label_5: <aligned>
    119 	.line 28
    120 	   32| packed-switch-payload
    121 		    1: Label_2
    122 		    2: Label_3
    123 }
    124 
    125 method TryCatch.main(java.lang.String[]):void
    126 {
    127 ............................. begin block 1 .............................
    128 	.params "?"
    129 	.src "tryCatch.java"
    130 	.line 15
    131 	.prologue_end
    132 	.line 15
    133 	    0| move-object v0, v6
    134 	.local v0, "args", java.lang.String[]
    135 	    1| const/4 v3, #+0 (0x00000000 | 0.00000)
    136 .............................. end block 1 ..............................
    137 	.try_begin_1
    138 ............................. begin block 2 .............................
    139 	    2| invoke-static {v3}, TryCatch.foo(int):int
    140 .............................. end block 2 ..............................
    141 	.try_end_1
    142 	  catch(B) : Label_3
    143 	  catch(A) : Label_4
    144 	  catch(...) : Label_5
    145 ............................. begin block 3 .............................
    146 	    5| move-result v3
    147 .............................. end block 3 ..............................
    148 ............................. begin block 4 .............................
    149 Label_1:
    150 	.line 18
    151 	.line 22
    152 	    6| sget-object v3, java.lang.System.out
    153 .............................. end block 4 ..............................
    154 ............................. begin block 5 .............................
    155 	    8| const-string v4, "finally\n"
    156 .............................. end block 5 ..............................
    157 ............................. begin block 6 .............................
    158 	   10| const/4 v5, #+0 (0x00000000 | 0.00000)
    159 	   11| new-array v5, v5, java.lang.Object[]
    160 .............................. end block 6 ..............................
    161 ............................. begin block 7 .............................
    162 	   13| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    163 .............................. end block 7 ..............................
    164 ............................. begin block 8 .............................
    165 	   16| move-result-object v3
    166 .............................. end block 8 ..............................
    167 ............................. begin block 9 .............................
    168 Label_2:
    169 	.line 23
    170 	.line 24
    171 	   17| return-void
    172 .............................. end block 9 ..............................
    173 ............................. begin block 10 .............................
    174 Label_3:
    175 	.line 16
    176 	   18| move-exception v3
    177 	   19| move-object v1, v3
    178 .............................. end block 10 ..............................
    179 	.try_begin_2
    180 ............................. begin block 11 .............................
    181 	.line 17
    182 	.local v1, "ex", B
    183 	   20| sget-object v3, java.lang.System.out
    184 .............................. end block 11 ..............................
    185 ............................. begin block 12 .............................
    186 	   22| const-string v4, "catch: B\n"
    187 .............................. end block 12 ..............................
    188 ............................. begin block 13 .............................
    189 	   24| const/4 v5, #+0 (0x00000000 | 0.00000)
    190 	   25| new-array v5, v5, java.lang.Object[]
    191 .............................. end block 13 ..............................
    192 ............................. begin block 14 .............................
    193 	   27| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    194 .............................. end block 14 ..............................
    195 	.try_end_2
    196 	  catch(A) : Label_4
    197 	  catch(...) : Label_5
    198 ............................. begin block 15 .............................
    199 	   30| move-result-object v3
    200 	   31| goto Label_1
    201 .............................. end block 15 ..............................
    202 ............................. begin block 16 .............................
    203 Label_4:
    204 	.line 19
    205 	.end_local v1
    206 	   32| move-exception v3
    207 	   33| move-object v1, v3
    208 .............................. end block 16 ..............................
    209 	.try_begin_3
    210 ............................. begin block 17 .............................
    211 	.line 20
    212 	.local v1, "ex", A
    213 	   34| sget-object v3, java.lang.System.out
    214 .............................. end block 17 ..............................
    215 ............................. begin block 18 .............................
    216 	   36| const-string v4, "catch: A\n"
    217 .............................. end block 18 ..............................
    218 ............................. begin block 19 .............................
    219 	   38| const/4 v5, #+0 (0x00000000 | 0.00000)
    220 	   39| new-array v5, v5, java.lang.Object[]
    221 .............................. end block 19 ..............................
    222 ............................. begin block 20 .............................
    223 	   41| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    224 .............................. end block 20 ..............................
    225 	.try_end_3
    226 	  catch(...) : Label_5
    227 ............................. begin block 21 .............................
    228 	   44| move-result-object v3
    229 	.line 22
    230 	   45| sget-object v3, java.lang.System.out
    231 .............................. end block 21 ..............................
    232 ............................. begin block 22 .............................
    233 	   47| const-string v4, "finally\n"
    234 .............................. end block 22 ..............................
    235 ............................. begin block 23 .............................
    236 	   49| const/4 v5, #+0 (0x00000000 | 0.00000)
    237 	   50| new-array v5, v5, java.lang.Object[]
    238 .............................. end block 23 ..............................
    239 ............................. begin block 24 .............................
    240 	   52| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    241 .............................. end block 24 ..............................
    242 ............................. begin block 25 .............................
    243 	   55| move-result-object v3
    244 	.line 23
    245 	   56| goto Label_2
    246 .............................. end block 25 ..............................
    247 ............................. begin block 26 .............................
    248 Label_5:
    249 	.line 22
    250 	.end_local v1
    251 	   57| move-exception v3
    252 	   58| move-object v2, v3
    253 	   59| sget-object v3, java.lang.System.out
    254 .............................. end block 26 ..............................
    255 ............................. begin block 27 .............................
    256 	   61| const-string v4, "finally\n"
    257 .............................. end block 27 ..............................
    258 ............................. begin block 28 .............................
    259 	   63| const/4 v5, #+0 (0x00000000 | 0.00000)
    260 	   64| new-array v5, v5, java.lang.Object[]
    261 .............................. end block 28 ..............................
    262 ............................. begin block 29 .............................
    263 	   66| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    264 .............................. end block 29 ..............................
    265 ............................. begin block 30 .............................
    266 	   69| move-result-object v3
    267 	   70| move-object v3, v2
    268 	   71| throw v3
    269 .............................. end block 30 ..............................
    270 }
    271