- PHP 手册
- 函数参考
- 影响 PHP 行为的扩展
- 错误处理
- 错误处理 函数
restore_exception_handler
(PHP 5, PHP 7, PHP 8)
restore_exception_handler — 恢复之前定义过的异常处理函数。
说明
restore_exception_handler(): bool在使用 set_exception_handler() 改变异常处理函数之后,此函数可以 用于还原之前的异常处理程序(可以是内置的或者也可以是用户所定义的函数)。
返回值
该函数总是返回 true
。
范例
示例 #1 restore_exception_handler() 范例
<?php
function exception_handler_1(Exception $e)
{
echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
}
function exception_handler_2(Exception $e)
{
echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
}
set_exception_handler('exception_handler_1');
set_exception_handler('exception_handler_2');
restore_exception_handler();
throw new Exception('This triggers the first exception handler...');
?>
以上例程会输出:
[exception_handler_1] This triggers the first exception handler...
参见
- set_exception_handler() - 设置用户自定义的异常处理函数
- set_error_handler() - 设置用户自定义的错误处理函数
- restore_error_handler() - 还原之前的错误处理函数
- error_reporting() - 设置应该报告何种 PHP 错误
User Contributed Notes 1 note
up down 10 rl7 at shinyblue dot net ¶8 years ago
Note that this does not work within an exception handler.
e.g.
<?php
function handler1(Exception $e) {
echo "handler1\n";
restore_exception_handler();
throw $e;
}
function handler2(Exception $e) {
echo "handler2\n";
}
set_exception_handler( 'handler2' );
set_exception_handler( 'handler1' );
throw new Exception( 'might expect to see handler1, handler2' );
/* Outputs:
handler1
PHP Fatal error: Uncaught exception 'Exception' with message 'might expect to see handler1, handler2' in /tmp/demo.php:15
Stack trace:
#0 {main}
thrown in /tmp/demo.php on line 15
*/
?>
add a note
官方地址:https://www.php.net/manual/en/function.restore-exception-handler.php