共计 998 个字符,预计需要花费 3 分钟才能阅读完成。
本文分为
- 设置用户自定义的异常处理函数 --set_exception_handler
- 设置用户自定义的错误处理函数 --set_error_handler
- 题外话 --- 系统错误的捕获
1 用户自定义异常处理函数
使用说明
#set_exception_handler 接受一个回调函数
callable set_exception_handler (callable $exception_handler)
注意
设置默认的异常处理程序,用于没有用 try/catch 块来捕获的异常。在 exception_handler 调用后异常会中止。
set_exception_handler 处理的是没有捕捉到的异常,也就是系统抛出的异常。
例:
<?php
#定义一个异常处理函数
function exception_handler($exception) {# $exception->getMessage()获得的是异常信息
# 使用此函数,主要用在此处做自定义设置,比如优化显示。echo " 未捕获的异常: " , $exception->getMessage(), "\n";}
#设置用户自定义的异常处理函数为 exception_handler
set_exception_handler('exception_handler');
#手动抛出一个异常,throw new Exception('抛出一个异常');
#注意此处,异常会中断之后的操作,所以下面的操作不会执行
echo " 未执行 \n";
?>
2 设置用户自定义的错误处理函数
set_exception_handler 是用在发生异常时触发,set_error_handler 是用在程序出现 error 时触发。
例如:
<?php
// 用户定义的错误处理函数
function myErrorHandler($errno, $errstr, $errfile, $errline) {echo "<b>Custom error:</b> [$errno] $errstr<br>";
echo " Error on line $errline in $errfile<br>";
}
// 设置用户定义的错误处理函数
set_error_handler("myErrorHandler");
#调用一个未定义的函数时,将触发
echo $i;
#输出结果为
#<b>Custom error:</b> [8] Undefined variable: s<br> Error on line 11
正文完