成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? php實現的錯誤處理封裝類實例
全站頭部文字 我要出現在這里
php實現的錯誤處理封裝類實例 741 2023-12-08   

本文實例講述了php實現的錯誤處理封裝類。分享給大家供大家參考,具體如下:

1、創建MyErrorHandler.php文件

代碼如下:

<?php
class MyErrorHandler {
  public $message;
  public $filename;
  public $line;
  public $vars = array();
  protected $_noticeLog = 'F:rootnoticeLog.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程序設計有所幫助。



主站蜘蛛池模板: 父子激情视频| 哦秀贞| 恶搞之家拍脏片八季是哪一集 | 适度水解奶粉有哪些| 女生宿舍2在线| 电影《斯宾塞》| 第三套广播体操七彩阳光完整版视频| 神迹电影| 视频你懂| a型血和b型血生的孩子是什么血型| 夜生活女王之霞姐| 孽债电视剧演员表| 许多组织都有自己的价值标准和行为理念 | 杨新鸣| 性的视频| 六年级下册语文文言文二则| 屈楚萧| 按摩服务电影| 追诉电视剧| 抖音网页版登录入口| 我的漂亮的朋友| 纵情欲海电影| 好像怎么造句 二年级| 我朋友的姐姐| 石川佑希| 电影双面情人| 牵着妈妈的手广场舞| 搜狐搜狐| 牛的交配视频| 黄网站在线观看视频| 易烊千玺个人资料简介| 法政先锋2| 超人演员| 血战到底电视剧| 关宝慧| 情难自禁电影| 遍地狼烟| 李乃文朱媛媛电视剧| 打开免费观看网站| 树屋上的童真| 加入民盟的好处和坏处|

?。?!站長長期在線接?。?!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103