本文分为
- 设置用户自定义的异常处理函数--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