php致命错误的异常捕获

使用register_shutdown_function函数绑定捕获函数

使用error_get_last函数捕获当前错误信息


register_shutdown_function("errorCheck");

function errorCheck(){
	
    $error=error_get_last();
	
//  print_r("<pre>");
//  print_r($error);
//  print_r("</pre>");

    if ($error['type']==4){

        if (file_exists($error_file)) {
            //创建日志
            $log_file=date("Y_m_d_G_i_s").".txt";
            $file_open = fopen($log_file,"w+");
            fclose($file_open);
        }
    }
}


function test(Array $a){
    echo 1;
}
//强行报错
test(123);


error_get_last()打印结果,type为php错误级别表中的对应值

Array
(
    [type] => 4096
    [message] => Argument 1 passed to test() must be an array, integer given, called in D:\www\n.php on line 18 and defined
    [file] => D:\www\n.php
    [line] => 14
)

php错误级别

常量 描述
2 E_WARNING 非致命的 run-time 错误。不暂停脚本执行。
8 E_NOTICE

Run-time 通知。

脚本发现可能有错误发生,但也可能在脚本正常运行时发生。

256 E_USER_ERROR 致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。
512 E_USER_WARNING 非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。
1024 E_USER_NOTICE 用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。
4096 E_RECOVERABLE_ERROR 可捕获的致命错误。类似 E_ERROR,但可被用户定义的处理程序捕获。(参见 set_error_handler())
8191 E_ALL

所有错误和警告,除级别 E_STRICT 以外。

(在 PHP 6.0,E_STRICT 是 E_ALL 的一部分)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值