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 相关文章推荐
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
浅谈php和.net的区别
Sep 28 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
php判断当前操作系统类型
Oct 28 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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中文验证码实现示例分享
2014/01/12 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python生成验证码实例
2014/08/21 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
python 实现的车牌识别项目
2021/01/25 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
小学生获奖感言范文
2014/02/02 职场文书
优秀幼教自荐信
2014/02/03 职场文书
专科生就业求职信
2014/06/22 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android