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实现分页的一个示例
Oct 09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
php编写的一个E-mail验证类
Mar 25 PHP
php简单图像创建入门实例
Jun 10 PHP
php编写简单的文章发布程序
Jun 18 PHP
php 生成签名及验证签名详解
Oct 26 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python计算导数并绘图的实例
2020/02/29 Python
用python实现学生管理系统
2020/07/24 Python
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
志愿者活动总结报告
2014/06/27 职场文书
建筑施工安全责任书
2014/07/24 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
教师节感想
2015/08/11 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
python实现局部图像放大
2021/11/17 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js