Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menangkap Ralat Maut dalam PHP Menggunakan `register_shutdown_function()`?

Bagaimanakah Saya Boleh Menangkap Ralat Maut dalam PHP Menggunakan `register_shutdown_function()`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 05:20:57603semak imbas

How Can I Catch Fatal Errors in PHP Using `register_shutdown_function()`?

Menangkap Ralat Maut PHP dengan register_shutdown_function

Dalam PHP, set_error_handler() berguna untuk mengendalikan kebanyakan ralat. Walau bagaimanapun, ia tidak dapat menangkap ralat maut seperti yang disebabkan oleh memanggil fungsi yang tidak wujud. Untuk menangani had ini, kami boleh menggunakan register_shutdown_function.

Menggunakan register_shutdown_function

register_shutdown_function() ialah fungsi yang boleh dipanggil apabila PHP dimatikan. Ia memerlukan fungsi yang ditentukan pengguna sebagai parameter. Fungsi ini kemudiannya boleh menangkap sebarang ralat yang tidak dikendalikan yang berlaku semasa pelaksanaan.

register_shutdown_function("fatal_handler");

function fatal_handler() {
    $error = error_get_last();
    if ($error !== NULL) {
        // Extract error information
        $errno = $error["type"];
        $errfile = $error["file"];
        $errline = $error["line"];
        $errstr = $error["message"];
        // Send error details via email using error_mail
        error_mail(format_error($errno, $errstr, $errfile, $errline));
    }
}

Fungsi Tambahan

Dalam kod di atas, kami telah mengandaikan kewujudan dua fungsi tambahan : error_mail dan format_error. Begini cara anda boleh mentakrifkannya:

function format_error($errno, $errstr, $errfile, $errline) {
    $trace = print_r(debug_backtrace(false), true);
    $content = "..."; // Format the error message as needed
    return $content;
}
function error_mail($content) {
    // Use Swift Mailer or other mail-sending library to send the error email
}

Nota Tambahan

  • register_shutdown_function memerlukan PHP 5.2 atau lebih baru.
  • The Pemalar $php_errormsg menyediakan maklumat tentang yang paling terkini ralat.
  • Rujuk dokumentasi pemalar yang dipratentukan untuk senarai jenis ralat (cth., E_ERROR).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap Ralat Maut dalam PHP Menggunakan `register_shutdown_function()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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