PHP 自定义错误处理函数使用介绍
PHP 代码:
function
myErrorHandler(
$errno
,
$errstr
,
$errfile
,
$errline
){
if
(!(
error_reporting
() &
$errno
)){
return
;}
switch
(
$errno
){
case
E_USER_ERROR:
echo
"<b>My ERROR</b> [$errno] $errstr<br/>";
echo
"错误行:$errline 在文件:$errfile 之中<br/>";
echo
" PHP
版本: " .PHP_VERSION ." (" .PHP_OS .")<br/>";
break
;
case
E_USER_WARNING:
echo
"<b>My WARNING</b> [$errno] $errstr<br/>";
break
;
case
E_USER_NOTICE:
echo
"<b>My NOTICE</b> [$errno] $errstr<br />";
break
;
default
:
echo
"Unknown error type: [$errno] $errstr<br />";
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
,
$errstr
,
$errfile
,
$errline
){
print_r(func_get_args());
//具体处理方法
}
function
myWarning(
$errno
,
$errstr
,
$errfile
,
$errline
){
print_r(func_get_args());
//具体处理方法
}
function
myNtice(
$errno
,
$errstr
,
$errfile
,
$errline
){
print_r(func_get_args());