3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php try { try { try { try { try{ try{ throw new Exception('hi', 1); } Catch (Exception $e) { throw new Exception('hi', 2, $e); } } Catch (Exception $e) { throw new Exception('hi', 3, $e); } } Catch (Exception $e) { throw new Exception('hi', 4, $e); } } Catch (Exception $e) { throw new Exception('hi', 5, $e); } } Catch (Exception $e) { throw new Exception('hi', 6, $e); } } catch (Exception $e) { echo $e->getMessage(), "\n"; while ($e = $e->getPreviousException()) { echo $e->getMessage(), "\n"; } }
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
Found catch point at position: 6
Branch analysis from position: 6
Jump found. Position 1 = 7, Position 2 = -2
Branch analysis from position: 7
Jump found. Position 1 = -2
Found catch point at position: 14
Branch analysis from position: 14
Jump found. Position 1 = 15, Position 2 = -2
Branch analysis from position: 15
Jump found. Position 1 = -2
Found catch point at position: 22
Branch analysis from position: 22
Jump found. Position 1 = 23, Position 2 = -2
Branch analysis from position: 23
Jump found. Position 1 = -2
Found catch point at position: 30
Branch analysis from position: 30
Jump found. Position 1 = 31, Position 2 = -2
Branch analysis from position: 31
Jump found. Position 1 = -2
Found catch point at position: 38
Branch analysis from position: 38
Jump found. Position 1 = 39, Position 2 = -2
Branch analysis from position: 39
Jump found. Position 1 = -2
Found catch point at position: 46
Branch analysis from position: 46
Jump found. Position 1 = 47, Position 2 = -2
Branch analysis from position: 47
Jump found. Position 1 = 56
Branch analysis from position: 56
Jump found. Position 1 = 60, Position 2 = 52
Branch analysis from position: 60
Jump found. Position 1 = -2
Branch analysis from position: 52
Jump found. Position 1 = 60, Position 2 = 52
Branch analysis from position: 60
Branch analysis from position: 52
filename:       /in/K3tsH
function name:  (null)
number of ops:  61
compiled vars:  !0 = $e
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   9     0  E >   NEW                                              $1      :-6
         1        SEND_VAL_EX                                              'hi'
         2        SEND_VAL_EX                                              1
         3        DO_FCALL                                      0          
         4      > THROW                                         0          $1
         5*       JMP                                                      ->13
  10     6  E > > CATCH                                                    'Exception', !0
  11     7    >   NEW                                              $3      :0
         8        SEND_VAL_EX                                              'hi'
         9        SEND_VAL_EX                                              2
        10        SEND_VAR_EX                                              !0
        11        DO_FCALL                                      0          
        12      > THROW                                         0          $3
        13*       JMP                                                      ->21
  13    14  E > > CATCH                                                    'Exception', !0
  14    15    >   NEW                                              $5      :6
        16        SEND_VAL_EX                                              'hi'
        17        SEND_VAL_EX                                              3
        18        SEND_VAR_EX                                              !0
        19        DO_FCALL                                      0          
        20      > THROW                                         0          $5
        21*       JMP                                                      ->29
  16    22  E > > CATCH                                                    'Exception', !0
  17    23    >   NEW                                              $7      :12
        24        SEND_VAL_EX                                              'hi'
        25        SEND_VAL_EX                                              4
        26        SEND_VAR_EX                                              !0
        27        DO_FCALL                                      0          
        28      > THROW                                         0          $7
        29*       JMP                                                      ->37
  20    30  E > > CATCH                                                    'Exception', !0
  21    31    >   NEW                                              $9      :18
        32        SEND_VAL_EX                                              'hi'
        33        SEND_VAL_EX                                              5
        34        SEND_VAR_EX                                              !0
        35        DO_FCALL                                      0          
        36      > THROW                                         0          $9
        37*       JMP                                                      ->45
  23    38  E > > CATCH                                                    'Exception', !0
  24    39    >   NEW                                              $11     :24
        40        SEND_VAL_EX                                              'hi'
        41        SEND_VAL_EX                                              6
        42        SEND_VAR_EX                                              !0
        43        DO_FCALL                                      0          
        44      > THROW                                         0          $11
        45*       JMP                                                      ->60
  26    46  E > > CATCH                                                    'Exception', !0
  27    47    >   INIT_METHOD_CALL                                         !0, 'getMessage'
        48        DO_FCALL                                      0  $13     
        49        ECHO                                                     $13
        50        ECHO                                                     '%0A'
  28    51      > JMP                                                      ->56
  29    52    >   INIT_METHOD_CALL                                         !0, 'getMessage'
        53        DO_FCALL                                      0  $14     
        54        ECHO                                                     $14
        55        ECHO                                                     '%0A'
  28    56    >   INIT_METHOD_CALL                                         !0, 'getPreviousException'
        57        DO_FCALL                                      0  $15     
        58        ASSIGN                                           $16     !0, $15
        59      > JMPNZ                                                    $16, ->52
        60    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 7.3.0