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


Posted in PHP onMay 10, 2013
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());
    //具体处理方法
}
//如果要分别处理不同错误级别:
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);
PHP 相关文章推荐
一周让你学会PHP 不错的学习资料
Feb 06 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
php的zip解压缩类pclzip使用示例
Mar 14 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php实现的zip文件内容比较类
Sep 24 PHP
php面象对象数据库操作类实例
Dec 02 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
php session_decode函数用法讲解
May 26 PHP
php DES加密算法实例分析
Sep 18 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
PHP 类相关函数的使用详解
May 10 #PHP
解析PHP缓存函数的使用说明
May 10 #PHP
基于PHP选项与信息函数的使用详解
May 10 #PHP
PHP 观察者模式的实现代码
May 10 #PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 #PHP
基于php实现长连接的方法与注意事项的问题
May 10 #PHP
Apache服务器无法使用的解决方法
May 08 #PHP
You might like
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
php实现的CSS更新类实例
2014/09/22 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
高中历史教学反思
2014/02/08 职场文书
我的求职择业计划书
2014/04/04 职场文书
档案接收函格式
2015/01/30 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
《落花生》教学反思
2016/02/16 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书