php.ini中配置错误信息

error_reporting = E_ALL; //设置向php报告发生的错误类型
display_errors = off; //设置错误是否显示在客户端
log_errors = on; //开启日志记录
error_log = 'error.log'; //错误日志记录文件

代码设置:
error_reporting(E_ALL);
error_reporting(E_ALL & ~E_NOTTICE);//屏蔽notice错误
error_reporting(E_ALL ^ ~E_NOTTICE);//屏蔽notice错误
error_reporting(0);//全部关闭

更多:http://php.net/manual/zh/errorfunc.constants.php

自定义处理
set_error_handler() 函数向系统声明错误处理函数
使用trigger_error() 函数,可以触发一个error

/**
 * [error_handler description]
 * @param  [type] $errorno int [错误类型]
 * @param  [type] $errmsg  string [错误信息]
 * @param  [type] $errfile [description]
 * @param  [type] $errline [description]
 * @return [type]          [description]
 */
function error_handler($errorno,$errmsg,$errfile,$errline)
{
    switch ($errorno) {
        case E_ERROR:
            echo '致命错误类型是:【' .$errorno. '】<br>';
            echo '致命错误信息是:【' .$errmsg. '】<br>';
            echo '致命错误文件是:【' .$errfile. '】<br>';
            echo '致命错误所在行是:【' .$errline. '】<br>';
            break;
        case E_NOTICE:
            echo '通知错误类型是:【' .$errorno. '】<br>';
            echo '通知错误信息是:【' .$errmsg. '】<br>';
            echo '通知错误文件是:【' .$errfile. '】<br>';
            echo '通知错误所在行是:【' .$errline. '】<br>';
            break;
        case E_WARNING:
            echo '警告错误类型是:【' .$errorno. '】<br>';
            echo '警告错误信息是:【' .$errmsg. '】<br>';
            echo '警告错误文件是:【' .$errfile. '】<br>';
            echo '警告错误所在行是:【' .$errline. '】<br>';
            break;      
        default:
            echo '错误类型是:【' .$errorno. '】<br>';
            echo '错误信息是:【' .$errmsg. '】<br>';
            echo '错误文件是:【' .$errfile. '】<br>';
            echo '错误所在行是:【' .$errline. '】<br>';
            break;
    }

}

set_error_handler('error_handler');//此方法错误

echo $t;
echo '<hr>';
echo 2/0;
echo '<hr>';
new A();

/*
通知错误类型是:【8】
通知错误信息是:【Undefined variable: t】
通知错误文件是:【D:\Web\test\18-11-13\01.php】
通知错误所在行是:【49】
------------------------------------------------------------
警告错误类型是:【2】
警告错误信息是:【Division by zero】
警告错误文件是:【D:\Web\test\18-11-13\01.php】
警告错误所在行是:【51】
INF
------------------------------------------------------------
Fatal error: Uncaught Error: Class 'A' not found in D:\Web\test\18-11-13\01.php:53 Stack trace: #0 {main} thrown in D:\Web\test\18-11-13\01.php on line 53
 */
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容