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中PDO解决中文乱码问题的一些补充
Sep 06 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 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获取mysql版本的几种方法小结
2008/03/25 PHP
php仿ZOL分页类代码
2008/10/02 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
php实现购物车功能(上)
2020/07/23 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
javascript生成大小写字母
2015/07/03 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
大学生职业生涯规划书模版
2013/12/30 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python