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面向对象全攻略 (九)访问类型
Sep 30 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
基于header的一些常用指令详解
Jun 06 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
PHP实现登录验证码校验功能
May 17 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 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教程孙仲岳主讲
2008/01/07 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
10条php编程小技巧
2015/07/07 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
征婚广告词
2014/03/17 职场文书
青春励志演讲稿
2014/04/29 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
二手车转让协议书
2015/01/29 职场文书
董事长年会致辞
2015/07/29 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python