首頁 > 後端開發 > php教程 > 如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?

如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?

Mary-Kate Olsen
發布: 2024-12-19 17:01:13
原創
277 人瀏覽過

How to Handle Fatal PHP Errors (E_ERROR) in PHP 5.2 ?

處理致命PHP (E_ERROR) 錯誤

問題:

如果發生致命錯誤在PHP腳本中,例如呼叫不存在的函數,錯誤無法被捕獲使用set_error_handler() 函數。如何處理這些嚴重錯誤?

解決方案:

要捕獲PHP 5.2 中的致命錯誤,請使用register_shutdown_function() 函數:

register_shutdown_function("fatal_handler");

function fatal_handler() {
    $errfile = "unknown file";
    $errstr = "shutdown";
    $errno = E_CORE_ERROR;
    $errline = 0;

    $error = error_get_last();

    if ($error !== NULL) {
        $errno = $error["type"];
        $errfile = $error["file"];
        $errline = $error["line"];
        $errstr = $error["message"];

        error_mail(format_error($errno, $errstr, $errfile, $errline));
    }
}
登入後複製
function format_error($errno, $errstr, $errfile, $errline) {
    $trace = print_r(debug_backtrace(false), true);

    $content = "
    <table>
        <thead><th>Item</th><th>Description</th></thead>
        <tbody>
            <tr>
                <th>Error</th>
                <td><pre class="brush:php;toolbar:false">$errstr
Errno
$errno
File $errfile Line $errline Trace
$trace
"; return $content; }
登入後複製
要傳送電子郵件,請使用 Swift Mailer 定義 error_mail() 函數。

其他資源:

    $php_errormsg
  • 預設常數

以上是如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板