Fungsi set_error_handler() menyetel fungsi penanganan kesalahan yang ditentukan pengguna.
Fungsi ini digunakan untuk membuat metode penanganan kesalahan milik pengguna selama runtime.
Fungsi ini mengembalikan penangan kesalahan lama atau NULL jika gagal.
set_error_handler(fungsi_kesalahan,tipe_kesalahan)
parameter | menggambarkan |
---|---|
kesalahan_fungsi | Diperlukan. Menentukan fungsi yang akan dijalankan ketika terjadi kesalahan. |
tipe_kesalahan | Opsional. Menentukan di tingkat pelaporan kesalahan mana kesalahan yang ditentukan pengguna akan ditampilkan. Standarnya adalah "E_ALL". Kemungkinan tingkat pelaporan kesalahan dirinci dalam tabel di bawah. |
fungsi_kesalahan(tingkat_kesalahan,pesan_kesalahan,file_kesalahan,garis_kesalahan,konteks_kesalahan)
parameter | menggambarkan |
---|---|
tingkat_kesalahan | Diperlukan. Menentukan tingkat pelaporan kesalahan untuk kesalahan yang ditentukan pengguna. Harus berupa angka nilai. Kemungkinan tingkat pelaporan kesalahan dirinci dalam tabel di bawah. |
pesan_kesalahan | Diperlukan. Menentukan pesan kesalahan untuk kesalahan yang ditentukan pengguna. |
file_kesalahan | Opsional. Menentukan nama file tempat kesalahan terjadi. |
garis_kesalahan | Opsional. Menentukan nomor baris tempat kesalahan terjadi. |
kesalahan_konteks | Opsional. Menentukan array yang menunjuk ke tabel simbol aktif tempat kesalahan terjadi. Dengan kata lain, error_context akan berisi array yang menjelaskan cakupan eksistensial di mana setiap variabel memunculkan kesalahan. |
nilai | konstan | menggambarkan |
---|---|---|
2 | E_PERINGATAN | Kesalahan runtime yang tidak fatal. Eksekusi skrip tidak dihentikan. |
8 | E_PEMBERITAHUAN | Pemberitahuan waktu proses. Penemuan skrip bisa saja merupakan bug, namun bisa juga terjadi saat menjalankan skrip secara normal. |
256 | E_USER_ERROR | Kesalahan fatal yang disebabkan oleh pengguna. Ini seperti E_ERROR yang dihasilkan oleh programmer menggunakan fungsi PHP trigger_error(). |
512 | E_USER_PERINGATAN | Kesalahan non-fatal yang disebabkan oleh pengguna. Ini seperti E_WARNING yang dihasilkan oleh programmer menggunakan fungsi PHP trigger_error(). |
1024 | E_USER_PEMBERITAHUAN | Notifikasi yang dibuat pengguna. Ini seperti E_NOTICE yang dihasilkan oleh programmer menggunakan fungsi PHP trigger_error(). |
4096 | E_RECOVERABLE_ERROR | Kesalahan fatal yang bisa ditangkap. Ini seperti E_ERROR yang dapat ditangkap oleh pegangan yang ditentukan pengguna (lihat set_error_handler()). |
8191 | E_SEMUA | Semua tingkat kesalahan dan peringatan kecuali E_STRICT (sejak PHP 6.0, E_STRICT akan menjadi bagian dari E_ALL). |
Tip: Jika fungsi ini digunakan, fungsi penanganan kesalahan standar PHP akan dilewati sepenuhnya. Jika perlu, penangan kesalahan yang ditentukan pengguna harus menghentikan skrip (die()). Catatan: Jika terjadi kesalahan sebelum skrip dijalankan, penangan kesalahan khusus tidak akan digunakan karena program khusus belum didaftarkan pada saat itu.
<?php//fungsi pengendali kesalahan function customError($errno, $errstr, $errfile, $errline) { echo "<b>Kesalahan khusus:</b> [$errno] $errstr<br />"; Kesalahan pada baris $errline di $errfile<br />"; echo "Ending Script"; die(); }//set error handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { trigger_error("Ada kesalahan khusus yang dipicu" }?>
Output dari kode di atas terlihat seperti ini:
Kesalahan khusus: [1024] Kesalahan khusus telah dipicu Kesalahan pada baris 19 di C:webfoldertest.phpEnding Script