Rumah >pembangunan bahagian belakang >tutorial php >Petua Pantas: Cara Mengurus Pelaporan Ralat di PHP
PHP pada dasarnya adalah bahasa pengaturcaraan "pengecualian ringan". Ini bermakna bahawa, walaupun ia menyokong pengendalian pengecualian, skrip terus dilaksanakan kecuali kesalahan maut berlaku, tidak kira apa yang berlaku.
Contoh:
<code class="language-php"><?php echo $sitepoint;</code>Kod di atas akan mengembalikan mesej berikut:
<code>Notice: Undefined variable: sitepoint in PHP shell code on line 1</code>PHP hanya akan membuang ralat pemberitahuan dan terus melaksanakan dengan gembira. Bahasa "Pengecualian Heavyweight" (seperti Python) membuang kesilapan dan menghentikan pelaksanaan.
Oleh itu, pemaju PHP mesti mengambil perhatian tambahan semasa menulis kod. Keputusan yang tidak dijangka mungkin berlaku semasa pelaksanaan program kerana pemberitahuan tidak akan berhenti melaksanakan, tetapi mungkin mempengaruhi tingkah laku program yang betul.
Sebelum memperkenalkan cara menyesuaikan gaya pelaporan ralat PHP, mari kita mula -mula memahami beberapa tahap keparahan ralat PHP.
PHP mempunyai tiga jenis mesej utama: ralat, pemberitahuan, dan amaran. Mereka mewakili tahap keparahan yang berbeza: e_error, e_notice, dan e_warning.
Kesalahan adalah kesilapan runtime maut, biasanya disebabkan oleh kegagalan dalam kod. Ini akan menyebabkan PHP menghentikan pelaksanaan.
juga boleh mencetuskan pembalakan dalam kod. Untuk melakukan ini, kita boleh menggunakan fungsi error_log (). Oleh kerana pembalakan ralat bukanlah tumpuan artikel ini, sila lihat di sini untuk maklumat lanjut.
Tukar laporan ralat php
kita boleh menggunakan fungsi error_reporting () untuk mengubah tingkah laku pelaporan ralat php lalai. Menggunakan fungsi ini, kita boleh menetapkan tahap ralat tempoh skrip. Ini dilakukan dengan meluluskan satu atau lebih pemalar kesilapan yang telah ditetapkan untuk fungsi tersebut.
Dengan perisytiharan ini, pelaksanaan skrip tidak hanya akan berhenti apabila ralat berlaku, tetapi juga apabila pemberitahuan berlaku.
menindas ralat
<code class="language-php"><?php error_reporting(E_ERROR | E_NOTICE);</code>
kita juga boleh menggunakan pengendali kawalan ralat (@) untuk memberitahu PHP untuk menindas kesilapan tertentu. Dengan meletakkan pengendali ini pada permulaan ungkapan, sebarang kesilapan yang merupakan hasil langsung dari ungkapan akan diproses secara senyap:
Berhati -hati apabila menggunakan pengendali ini, kerana ia akan menyembunyikan kesilapan sepenuhnya. Bukan sahaja ralat tidak akan dipaparkan, tetapi ia tidak akan dihantar ke log ralat. Walaupun ini seolah -olah tidak berbahaya, menggunakan pengendali ini topeng masalah struktur yang lebih dalam dalam kod dan topeng yang berpotensi salah tingkah laku.
Gunakan PHP sebagai bahasa "Pengecualian Berat Heavyweight"
Dalam contoh berikut, fungsi yang ditentukan oleh pengguna RalatHandler () ditetapkan sebagai pengendali ralat, menggunakan fungsi set_error_handler (). Apabila ralat maut berlaku kerana fungsi file_get_contents () tidak dapat mencari fail, ia melemparkan errorException:
Menggunakan kaedah ini, kita boleh mengendalikan kesilapan pelaksanaan seperti yang kita lakukan dengan pengecualian, membungkusnya dalam percubaan ... menangkap pernyataan, dan memberikan arahan yang sesuai tentang cara melakukannya dalam kes ini.
<code class="language-php"><?php echo $sitepoint;</code>
Kesimpulan
soalan yang sering ditanya mengenai menguruskan laporan ralat dalam php
Bagaimana untuk membolehkan pelaporan ralat dalam php?
Bagaimana menangani kesilapan PHP dengan anggun?
Apakah fungsi PHP Trigger_error?
Fungsi Trigger_error digunakan untuk menjana mesej ralat peringkat pengguna. Anda boleh menggunakan fungsi ini untuk membuat mesej ralat tersuai dan mencetuskannya dalam kod anda.anda boleh menggunakan fungsi error_log untuk log ralat PHP ke fail. Di samping itu, anda boleh mengkonfigurasi PHP untuk log ralat ke fail tertentu dengan mengubahsuai arahan error_log dalam konfigurasi php.ini.
Atas ialah kandungan terperinci Petua Pantas: Cara Mengurus Pelaporan Ralat di PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!