<?php
/*
*
* Opcode 编号: 108
*/
try {
$error = 'Always throw this error';
throw new Exception($error);
// 不会执行异常后的代码。
echo 'Never executed';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// 继续执行
echo 'Hello World';
?>
函数名: (null)
编译后的变量: !0=$error, !1=$e
行号 | # | 操作 | 读取 | 扩展 | 返回 | 操作数 |
---|---|---|---|---|---|---|
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 |