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
Lepaskan: 2024-12-19 05:20:57
asal
534 orang telah melayarinya

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

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;
}
Salin selepas log masuk
function error_mail($content) {
    // Use Swift Mailer or other mail-sending library to send the error email
}
Salin selepas log masuk

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!

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