restore_exception_handler()
(PHP 5, PHP 7)
恢复之前定义过的异常处理函数。
说明
restore_exception_handler(void): bool
在使用set_exception_handler()改变异常处理函数之后,此函数可以用于还原之前的异常处理程序(可以是内置的或者也可以是用户所定义的函数)。
返回值
该函数总是返回TRUE
。
范例
Example #1restore_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 错误
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 */ ?>