Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menangani Ralat PHP Maut (E_ERROR) dalam PHP 5.2?

Bagaimana untuk Menangani Ralat PHP Maut (E_ERROR) dalam PHP 5.2?

Mary-Kate Olsen
Lepaskan: 2024-12-19 17:01:13
asal
278 orang telah melayarinya

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

Mengendalikan Fatal PHP (E_ERROR) Ralat

Masalah:

Jika ralat maut berlaku dalam skrip PHP, seperti memanggil fungsi yang tidak wujud, ralat tidak boleh ditangkap menggunakan set_error_handler() fungsi. Bagaimanakah anda boleh mengendalikan ralat kritikal ini?

Penyelesaian:

Untuk menangkap ralat maut dalam PHP 5.2 , gunakan fungsi 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));
    }
}
Salin selepas log masuk

Anda perlu melaksanakan fungsi error_mail() dan format_error(), untuk contoh:

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; }
Salin selepas log masuk

Untuk menghantar e-mel, gunakan Swift Mailer untuk menentukan fungsi error_mail().

Sumber Tambahan:

  • $php_errormsg
  • Pemalar Pratakrif

Atas ialah kandungan terperinci Bagaimana untuk Menangani Ralat PHP Maut (E_ERROR) dalam PHP 5.2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan