set_exception_handler
set_exception_handler
(PHP 5, PHP 7)
set_exception_handler - 设置用户定义的异常处理函数
描述
callable set_exception_handler ( callable $exception_handler )
如果在 try / catch 0块中未捕获到异常,则设置默认异常处理程序。exception_handler
被调用后执行将停止。
参数
exception_handler
未捕获的异常发生时要调用的函数的名称。这个处理函数需要接受一个参数,这个参数是抛出的异常对象。这是 0PHP 7之前的处理程序签名:
void handler ( Exception $ex )
自PHP 7以来,大多数错误都是通过抛出错误异常来报告的,这些异常也会被处理程序捕获。错误和异常实现 Throwable 接口。这是自 PHP 7 0以来的处理程序签名:
void handler ( Throwable $ex )
NULL
可能会传递,以重置此处理程序为其默认状态。
警告
请注意,为ex
回调中的参数提供明确的 Exception 类型提示将导致 0PHP 7中更改的异常层次结构问题。
返回值
返回以前定义的异常处理程序的名称,或者NULL
出错。如果没有定义以前的处理程序,NULL
也会返回。
更新日志
版 | 描述 |
---|---|
7.0.0 | 传递到 exception_handler 的参数类型已从 Exception 更改为 Throwable |
5.5.0 | 以前,如果传递 NULL,那么这个函数返回 0TRUE。它从 PHP 5.5.0开始返回以前的处理程序。 |
例子
示例#1 set_exception_handler()示例
<?php
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler'
throw new Exception('Uncaught Exception'
echo "Not Executed\n";
?>
- restore_exception_handler() - 恢复先前定义的异常处理函数
- restore_error_handler() - 恢复以前的错误处理函数
- error_reporting() - 设置报告哪些 PHP 0错误
- 有关回调类型的信息
- PHP 5 Exceptions
← set_error_handler
trigger_error →