php实现的错误处理封装类实例
程序员文章站
2024-03-11 10:14:19
本文实例讲述了php实现的错误处理封装类。分享给大家供大家参考,具体如下:
1、创建myerrorhandler.php文件
代码如下:
本文实例讲述了php实现的错误处理封装类。分享给大家供大家参考,具体如下:
1、创建myerrorhandler.php文件
代码如下:
<?php class myerrorhandler { public $message; public $filename; public $line; public $vars = array(); protected $_noticelog = 'f:\root\noticelog.log'; public function __construct ($message,$filename,$line,$vars) { $this->message = $message; $this->filename = $filename; $this->line = $line; $this->vars = $vars; } public static function deal ($errno,$errmsg,$filename,$line,$vars) { $self = new self($errno,$errmsg,$filename,$line,$vars); switch ($errno) { case e_user_error: return $self->dealerror(); break; case e_user_warning: case e_warning: return $self->dealwarning(); break; case e_notice: case e_user_notice: return $self->dealnotice(); default: return false; } } /** * 致命的错误 */ public function dealerror() { ob_start(); debug_print_backtrace(); $backtrace = ob_get_flush(); $errormsg = <<<eof 出现了致命的错误,如下: 产生错误的文件:{$this->filename} 产生错误的信息:{$this->message} 产生错误的行号:{$this->line} 追踪信息{$backtrace} eof; error_log($errormsg,1,'279921301@qq.com','from:php[error错误日志]'); exit(1); } /** * 警告的错误 */ public function dealwarning() { $errormsg = <<<eof 出现了警告的错误,如下: 产生警告的文件:{$this->filename} 产生警告的信息:{$this->message} 产生警告的行号:{$this->line} eof; return error_log($errormsg,1,'279921301@qq.com','from:php[error警告日志]'); } /** * 通知的错误 */ public function dealnotice() { $datetime = date('y-m-d h:i:s'); $errormsg = <<<eof 出现了通知的错误,如下: 产生通知的文件:{$this->filename} 产生通知的信息:{$this->message} 产生通知的行号:{$this->line} 产生通知的时间:{$datetime} eof; return error_log($errormsg,3,$this->_noticelog); } }
2、测试代码
<?php include "myerrorhandler.php"; //报告所有 php 错误 error_reporting(-1); //不显示错误信息 ini_set('display_errors',0); set_error_handler(array('myerrorhandler','deal')); echo $test; //notice错误 settype($var,'test'); //警告错误 test();
注意:发送邮件需要在本地配置mail函数,可以参考前文《php实现在windows下配置sendmail并通过mail()函数发送邮件的方法》。
更多关于php相关内容感兴趣的读者可查看本站专题:《php错误与异常处理方法总结》、《php字符串(string)用法总结》、《php数组(array)操作技巧大全》、《php运算与运算符用法总结》、《php网络编程技巧总结》、《php基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
上一篇: 使用MyBatis 动态update数据
下一篇: Java 分割字符串详解及实例代码