Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menangkap gesaan ralat dalam php
Cara menangkap gesaan ralat dalam PHP: 1. Keluarkan semua ralat melalui "error_reporting(E_ALL);"; 2. Gunakan "try...catch" untuk menangkap pengecualian 3. Gunakan fungsi set_error_handler(). untuk menjadi tuan rumah pengendali ralat.
Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.1, komputer DELL G3
Cara untuk tangkap gesaan ralat dalam php ?
Pengendalian pengecualian PHP, penangkapan dan pengisihan ralat
Terdapat tiga jenis laporan ralat PHP:
1 ralat, ralat maut
2. Amaran
3 Perhatian
Akibat:
Ralat->gt; program. Jika terdapat ralat sintaks, PHP tidak akan berfungsi sama sekali.
Amaran -> Ia tidak akan menamatkan larian, tetapi ia akan menjejaskan keputusan.
Nota -> tidak akan menamatkan pelaksanaan dan tidak akan menjejaskan keputusan.
Untuk memberikan pengguna pengalaman yang lebih baik, kami menyekat semua output ralat, iaitu output, bukan paparan. Tetapi dalam kes ini, pentadbir tidak akan dapat melihat ralat. Ralat
tidak dipaparkan pada halaman, tetapi log ralat dijana untuk dilihat oleh pentadbir.
error_reporting(~E_ALL) menyekat semua output Sememangnya, pentadbir tidak dapat melihatnya. Saya tidak mahu menyekat semua keluaran, saya hanya mahu menyekat semua paparan
ini_set('display_errors','off'); ralat tidak disekat.
ini_set('log_errors','on'); //开启日志写入功能 ini_set('error_log','myerror.log'); //日志的存放位置 ini_set('display_errors','off'); //屏蔽页面显示 error_reporting(E_ALL); //输出所有错误 echo 123; echo $str; //这个会出现一个注意,表示未声明变量 echo date(); //警告,没有传参 echo dae(); //致命错误,找不到这个函数 echo 123;
Pengecualian:
Dalam bahasa PHP, semua pengecualian mesti dibuang sendiri, tidak seperti bahasa seperti JAVA yang secara automatik akan membuang pengecualian Ini adalah sumber PHP One of sebab mengapa kenyataan pengendalian pengecualian jarang dilihat dalam kod ialah
.
Pengecualian dan ralat:
Pengecualian merujuk kepada situasi yang tidak seperti yang diharapkan dan berbeza daripada proses biasa semasa operasi program. Ralat adalah masalahnya sendiri, yang disebabkan oleh sintaks yang menyalahi undang-undang atau masalah alam sekitar yang menghalang pengkompil daripada lulus tetapan semak dan berjalan.
Oleh kerana PHP tidak mempunyai pengendalian pengecualian pada mulanya, ia kemudiannya ditiru untuk memasuki pembangunan peringkat perusahaan. Sebaik sahaja PHP menemui kod yang tidak normal, dalam kebanyakan kes, ia akan terus membuang ralat dan bukannya
sebagai pengecualian.
PHP hanya boleh menggunakan cuba...tangkap untuk menangkap pengecualian selepas anda melontar pengecualian (biasanya ini berlaku dan beberapa pengecualian boleh ditangkap secara automatik).
Pengecualian biasanya digunakan dalam PHP dalam senario berikut:
1 Ramalan pesimis program: Jika anda berpendapat bahawa kod anda tidak dapat mengendalikan pelbagai situasi yang boleh dijangka dan situasi yang tidak dijangka satu demi satu.
2. Keperluan program dan kebimbangan perniagaan: Jika konsistensi data sangat tinggi, anda boleh menggunakan try...catch untuk meminimumkan gangguan logik yang disebabkan oleh pengecualian dan membetulkannya
Selepas pemprosesan , integriti logik perniagaan tidak akan terjejas.
3. Keperluan keteguhan peringkat bahasa: Dengan mengawal proses masa jalan dengan tepat, apabila program terganggu, gunakan try...tangkap untuk mengecilkan skop ralat yang mungkin berlaku, menangkap pengecualian tepat pada masanya dan lakukan sesuatu
Sediakan remedi yang sepadan.
Ralat dalam PHP:
Ralat ialah situasi yang menyebabkan skrip berjalan secara tidak normal.
Tahap ralat utama dalam php adalah seperti berikut:
ditamatkan: Ralat tahap terendah, yang bermaksud "tidak disyorkan, tidak disyorkan". Sebagai contoh, jika siri ereg fungsi biasa digunakan dalam PHP 5, ia akan muncul. Ralat jenis ini biasanya disebabkan oleh penggunaan fungsi atau sintaks yang tidak digunakan atau lapuk. Ia tidak menjejaskan operasi biasa program, tetapi disyorkan untuk membetulkannya.
notis: Umumnya merujuk kepada tempat yang tidak sesuai dalam tatabahasa. Jika pembolehubah digunakan tetapi tidak ditakrifkan, ralat ini akan dilaporkan. Tidak menjejaskan aliran biasa program.
amaran: Ralat peringkat lebih tinggi ini berlaku apabila terdapat situasi yang sangat tidak sesuai dalam sintaks, seperti ketidakpadanan parameter fungsi. Akibatnya, hasil yang diharapkan tidak dapat diperoleh dan kod tersebut perlu diubah suai.
ralat janin: Ralat maut, yang secara langsung menyebabkan program ditamatkan. Kesilapan seperti itu mesti diperbetulkan.
Ralat prase: Ralat penghuraian sintaks di atas adalah ralat masa jalanan ini akan dilemparkan sebelum dijalankan.
Pengendali ralat tersuai:
Anda boleh menggunakan fungsi set_error_handler() untuk mengehoskan pengendali ralat dan menyesuaikan proses pengendalian ralat.
Jika anda ingin membatalkan pengehosan, anda boleh menggunakan restore_error_handler() dalam halaman yang sama untuk membatalkan pengehosan; jika anda ingin membuang ralat sendiri, anda boleh menggunakan fungsi
trigger_error() .
Pembelajaran yang disyorkan: "
Tutorial Video PHPAtas ialah kandungan terperinci Bagaimana untuk menangkap gesaan ralat dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!