Menu Close

php异常处理函数设置方法

本文分为

  1. 设置用户自定义的异常处理函数--set_exception_handler
  2. 设置用户自定义的错误处理函数--set_error_handler
  3. 题外话---系统错误的捕获

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 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注