>백엔드 개발 >PHP 튜토리얼 >PHP 5.2에서 치명적인 PHP 오류(E_ERROR)를 처리하는 방법은 무엇입니까?

PHP 5.2에서 치명적인 PHP 오류(E_ERROR)를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-19 17:01:13283검색

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));
    }
}

error_mail() 및 format_error() 함수를 구현해야 합니다. 예:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.