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 相关文章推荐
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
PHP开发负载均衡指南
Jul 17 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP实现变色验证码实例
Jan 06 PHP
浅析php数据类型转换
Jan 09 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
PHP实现文字写入图片功能
Feb 18 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
使用 php4 加速 web 传输
2006/10/09 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
angular分页指令操作
2017/01/09 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
python django 访问静态文件出现404或500错误
2017/01/20 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
简单了解python协程的相关知识
2019/08/31 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
英国女装网上商店:I Saw It First
2018/10/18 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
高中生校园生活自我评价
2013/09/19 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
迎国庆横幅标语
2014/10/08 职场文书
环卫工人慰问信
2015/02/15 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python