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配置心得包含MYSQL5乱码解决
Nov 20 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
遍历指定目录下的所有目录和文件的php代码
Nov 27 PHP
简单的php文件上传(实例)
Oct 27 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
PHP 验证登陆类分享
Mar 13 PHP
php生成短域名函数
Mar 23 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
js常用函数 不错
2006/09/08 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
python中count函数简单用法
2020/01/05 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
物业管理应届生求职信
2013/10/28 职场文书
小学教师岗位职责
2013/11/25 职场文书
自荐书模板
2013/12/19 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
小学捐书活动总结
2014/07/05 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2016年记者节感言
2015/12/08 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
详解redis在微服务领域的贡献
2021/10/16 Redis
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏