亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP:自定義錯誤處理程序 - 處理解析和致命錯誤

PHP:自定義錯誤處理程序 - 處理解析和致命錯誤

PHP
冉冉說 2019-09-20 16:57:11
如何使用自定義錯誤處理程序處理解析和致命錯誤?
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

簡單回答:你做不到。參見手冊:

使用用戶定義的函數無法處理以下錯誤類型:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING,以及調用set_error_handler()的文件中引發的大部分E_STRICT。

對于其他每個錯誤,您都可以使用 set_error_handler()

編輯:

既然看起來有關于這個主題的討論,關于使用register_shutdown_function,我們應該看看處理的定義:對我來說,處理錯誤意味著捕獲錯誤并以一種“好”的方式做出反應用戶底層數據(數據庫,文件,Web服務等)。

使用register_shutdown_function您無法處理調用它的代碼中的錯誤,這意味著代碼仍然會在發生錯誤時停止工作。但是,您可以向用戶顯示錯誤消息而不是白頁,但是您不能回滾代碼在失敗之前執行的任何操作。


查看完整回答
反對 回復 2019-09-20
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

您可以使用以下代碼跟蹤這些錯誤:


(如果它們出現在解析錯誤,只能抓到其他通過腳本文件include()或require(),或把這個代碼放到一個auto_prepend_file其他的答案也提到。)


function shutdown() {

    $isError = false;


    if ($error = error_get_last()){

    switch($error['type']){

        case E_ERROR:

        case E_CORE_ERROR:

        case E_COMPILE_ERROR:

        case E_USER_ERROR:

            $isError = true;

            break;

        }

    }


    if ($isError){

        var_dump ($error);//do whatever you need with it

    }

}


register_shutdown_function('shutdown');


查看完整回答
反對 回復 2019-09-20
  • 3 回答
  • 0 關注
  • 538 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號