set_exception_handler 设置用户自定义的异常处理函数
发表日期:2021-07-01 08:54:56 | 来源: | | 浏览(1018) 分类:错误处理 函数
set_exception_handler
(PHP 5, PHP 7, PHP 8)
set_exception_handler — 设置用户自定义的异常处理函数
说明
set_exception_handler(callable $exception_handler
): callable
设置默认的异常处理程序,用于没有用 try/catch 块来捕获的异常。
在 exception_handler
调用后异常会中止。
参数
exception_handler
当一个未捕获的异常发生时所调用函数的名称。 该处理函数需要接受一个参数,该参数是一个抛出的异常对象。 PHP 7 以前的异常处理程序签名:
handler(Exception
$ex
): void自 PHP 7 以来,大多数错误抛出 Error 异常,也能被捕获。 Error 和 Exception 都实现了 Throwable 接口。 PHP 7 起,处理程序的签名:
handler(Throwable
$ex
): void也可以传递
null
值用于重置异常处理函数为默认值。警告
注意,如果在用户回调里将
ex
参数的类型明确约束为Exception, PHP 7 中由于异常类型的变化,将会产生问题。
返回值
返回之前定义的异常处理程序的名称,或者在错误时返回 null
。
如果之前没有定义错误处理程序,也会返回 null
。
更新日志
版本 | 说明 |
---|---|
7.0.0 | 传入 exception_handler 的参数从 Exception 改为 Throwable |
5.5.0 | 之前版本里,如果传入 null ,函数会返回 true 。
自 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 错误
PHP 5 异常
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- 预定义常量(0)
- debug_backtrace 产生一条回溯跟踪(backtrace)(0)
- debug_print_backtrace 打印一条回溯。(0)
- error_clear_last 清除最近一次错误(0)
- error_get_last 获取最后发生的错误(0)
- error_log 发送错误信息到某个地方(0)
- error_reporting 设置应该报告何种 PHP 错误(0)
- restore_error_handler 还原之前的错误处理函数(0)
- restore_exception_handler 恢复之前定义过的异常处理函数。(0)
- set_error_handler 设置用户自定义的错误处理函数(0)
- set_exception_handler 设置用户自定义的异常处理函数(0)
- trigger_error 产生一个用户级别的 error/warning/notice 信息(0)
- user_error trigger_error() 的别名(0)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)