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获取文件绝对路径的代码(上一级目录)
May 29 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
php去除字符串换行符示例分享
Feb 13 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
如何重写Laravel异常处理类详解
Dec 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中的CMS的涵义
2007/03/11 PHP
php基础教程
2015/08/26 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
在centos7中分布式部署pyspider
2017/05/03 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
构造方法和其他方法的区别
2016/04/26 面试题
养殖人员的创业计划书范文
2013/12/26 职场文书
团队拓展活动方案
2014/08/28 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python