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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
php中simplexml_load_file函数用法实例
Nov 12 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
Laravel模型事件的实现原理详解
Mar 14 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 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
keras多显卡训练方式
2020/06/10 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
会计专业毕业生推荐信
2013/11/05 职场文书
校园活动策划书范文
2014/01/10 职场文书
关于人生的感言
2014/01/17 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
停车位租赁协议书
2014/09/24 职场文书
场地使用证明模板
2014/10/25 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS