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 多个submit提交表单 处理方法
Jul 07 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
Php-Redis安装测试笔记
Mar 05 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
JavaScript创建对象的写法
2013/08/29 Javascript
js转义字符介绍
2013/11/05 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
vue实现图片上传功能
2020/05/28 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python编程之多态用法实例详解
2015/05/19 Python
Django实现学员管理系统
2019/02/26 Python
python字符串循环左移
2019/03/08 Python
python web框架 django wsgi原理解析
2019/08/20 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python模拟斗地主发牌
2020/04/22 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
三星英国官网:Samsung英国
2018/09/25 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
暑假家长评语大全
2014/04/17 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
贷款委托书怎么写
2014/08/02 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
消防宣传标语大全
2015/08/03 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
python垃圾回收机制原理分析
2022/04/13 Python