PHP - Manual: CATCH
2024-12-21
<?php
/*
*
* opcode number: 107
*/
try {
$error = 'Always throw this error';
throw new Exception($error);
// Code following an exception is not executed.
echo 'Never executed';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
Function name: (null)
Compiled variables: !0=$error, !1=$e
line | # | op | fetch | ext | return | operands |
---|---|---|---|---|---|---|
7 | 0 | ASSIGN | !0,'Always+throw+this+error' | |||
8 | 1 | ZEND_FETCH_CLASS | :1 | 'Exception' | ||
2 | NEW | $2 | :1 | |||
3 | SEND_VAR | !0 | ||||
4 | DO_FCALL_BY_NAME | 1 | ||||
5 | ZEND_THROW | 0 | $2 | |||
11 | 6 | ECHO | 'Never+executed' | |||
13 | 7 | JMP | ->15 | |||
8 | ZEND_FETCH_CLASS | :4 | 'Exception' | |||
9 | ZEND_CATCH | 15 | $4,!1 | |||
14 | 10 | ECHO | 'Caught+exception%3A+' | |||
11 | ZEND_INIT_METHOD_CALL | !1,'getMessage' | ||||
12 | DO_FCALL_BY_NAME | 0 | ||||
13 | ECHO | $6 | ||||
14 | ECHO | '%0A' | ||||
18 | 15 | ECHO | 'Hello+World' | |||
19 | 16 | RETURN | 1 |
官方地址:https://www.php.net/manual/en/internals2.opcodes.catch.php