首頁  >  文章  >  後端開發  >  php如何捕獲致命錯誤

php如何捕獲致命錯誤

藏色散人
藏色散人原創
2020-07-23 10:00:353138瀏覽

php取得致命錯誤的方法:先開啟“ob_start”,並建立一個“tmp.php”檔案;然後在“short.php”檔案中寫一些錯誤程式碼;最後造訪“tmp.php”文件即可。

php如何捕獲致命錯誤

php捕獲致命錯誤

#記錄php錯誤日誌可以強大的幫我們找出問題、修復bug,php提供了set_error_handler、set_exception_handler來捕捉錯誤和異常。但是set_error_handler並不能捕獲E_ERROR、 E_PARSE、 E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING、E_STRICT等錯誤。一般來講,如果是致命錯誤,會導致php解釋器都無法編譯通過,自然不能捕獲這些錯誤,但是,我們可以透過一些方法來巧妙的得到這些錯誤訊息。

推薦:《PHP教學

先建立一個tmp.php

<?php
//error_reporting(0);
ob_start();
set_error_handler(&#39;errorHandler&#39;);
register_shutdown_function( &#39;close&#39; );
function 大专栏  php捕获致命错误class="hljs-title">close(){
ob_end_clean();
$error = error_get_last();
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($error);
}
require &#39;short.php&#39;;

然後在short.php中寫入一些錯誤程式碼,如

echo $a//故意不加分號

然後存取tmp.php,就會發現,頁面沒有顯示php本身的錯誤提示,而是執行了close方法。以上程式碼關鍵幾點。

第一、開啟ob_start

第二:使用register_shutdown_function註冊函數

第三:使用error_get_last函數取得錯誤訊息

#第四:php解析的第一個檔案不能出現致命錯誤,否則無法捕獲。所以也推薦大家搭建自己的框架或選擇框架時,最好使用單一入口方式

以上是php如何捕獲致命錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn