PHP捕捉錯誤的方法

來源:互聯網
上載者:User
這篇文章主要介紹了關於PHP捕捉錯誤的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

PHP捕捉錯誤

  • 禁止錯誤輸出

error_reporting(0);
  • 設定錯誤處理器

set_error_handler('errorHandler');
  • 在指令碼結束時啟動並執行函數

register_shutdown_function('fatalErrorHandler');
  • 錯誤處理

/** * @param int    $err_no      錯誤碼 * @param string $err_msg  錯誤資訊 * @param string $err_file    錯誤檔案 * @param int    $err_line     錯誤行號 * @return string */function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0){    $log = [        '['.date('Y-m-d h-i-s').']',        '|',        $err_no,        '|',        $err_msg,        '|',        $err_file,        '|',        $err_line    ];    $log_path = './test.txt';    error_log(implode(' ',$log)."\r\n",3, $log_path);}
  • 捕捉致命錯誤

function fatalErrorHandler() {    $e = error_get_last();    var_export($e);    switch ($e['type']) {        case 1:            errorHandler($e['type'], $e['message'], $e['file'], $e['line']);            break;    }}
class DemoClass_1{    public function index()    {        //這裡發生一個警告錯誤,出發errorHandler        echo $undefinedVarible;    }}
  • 這裡發生一個警告錯誤,被errorHandler 捕獲

$demo_1 = new DemoClass_1();$demo_1->index();
  • 發生致命錯誤,指令碼停止運行觸發 fatalErrorHandler

$demo_2 = new DemoClass_2();$demo_2->index();

開啟test.txt後 輸出:

[2018-06-12 05-49-11] | 8 | Undefined variable: undefinedVarible | /Users/darry/htdocs/test.php | 57[2018-06-12 05-49-11] | 1 | Uncaught Error: Class 'DemoClass_2' not found in /Users/darry/htdocs/test.php:67Stack trace:#0 {main}  thrown | /Users/darry/htdocs/test.php | 67

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關推薦:

Nginx SSL快速雙向認證配置(指令碼)

PHP資料結構基礎之遞迴

關於thinkphp行為的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.