加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP 自定义错误处理函数的使用详解

发布时间:2020-12-13 06:17:27 所属栏目:PHP教程 来源:网络整理
导读:代码如下: function myErrorHandler($errno,$errstr,$errfile,$errline){ if(!(error_reporting() } switch ($errno){ case E_USER_ERROR: echo " My ERROR [$errno] $errstr "; echo "错误行:$errline 在文件:$errfile之中 "; echo " PHP版本: " .PHP_VE

代码如下:
function myErrorHandler($errno,$errstr,$errfile,$errline){
if(!(error_reporting() &$errno)){return;}
switch ($errno){
case E_USER_ERROR:
echo "My ERROR [$errno] $errstr
";
echo "错误行:$errline 在文件:$errfile之中
";
echo " PHP版本: " .PHP_VERSION ." (" .PHP_OS .")
";
break;
case E_USER_WARNING:
echo "My WARNING [$errno] $errstr
";
break;
case E_USER_NOTICE:
echo "My NOTICE [$errno] $errstr
";
break;
default:
echo "Unknown error type: [$errno] $errstr
";
break;
}
return true;
}

function trigger_test($age){//抛出错误的测试函数
if($age <= 0 || $age > 999) trigger_error("年龄不合法:$age岁",E_USER_ERROR);
if($age < 18) trigger_error("未成年:$age岁",E_USER_WARNING);
if($age > 40 && $age < 100) trigger_error("年龄稍大:$age岁",E_USER_NOTICE);
}
//如果只是简单统一地处理错误:
$errorHandler = set_error_handler("myErrorHandler");
trigger_test(1000);//会抛出一个error级的错误


function myError($errno,$errline){
print_r(func_get_args());
//具体处理方法
}
function myWarning($errno,$errline){
print_r(func_get_args());
//具体处理方法
}

function myNtice($errno,$errline){
print_r(func_get_args());
//具体处理方法
}

//如果要分别处理不同错误级别:
set_error_handler('myError',E_USER_ERROR);
set_exception_handler('myWarning',E_USER_WARNING);
set_exception_handler('myNtice',E_USER_NOTICE);
trigger_error('故意抛出个错误,还是很严重的哪一种!',E_USER_ERROR);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读