Dalam PHP, pengendalian ralat dan pengecualian adalah penting untuk mengekalkan aplikasi yang mantap dan selamat. Pengendalian ralat dan pengecualian yang betul memastikan aplikasi anda berkelakuan boleh diramal, memberikan maklum balas yang bermakna kepada pengguna dan merekodkan isu untuk penyahpepijatan dan penambahbaikan pada masa hadapan. Dalam artikel ini, kita akan membincangkan perbezaan antara ralat dan pengecualian dalam PHP, cara PHP mengendalikannya dan amalan terbaik untuk pengendalian ralat dan pengecualian.
Ralat dalam PHP merujuk kepada situasi yang berlaku semasa pelaksanaan program yang membawa kepada tingkah laku yang tidak dijangka, selalunya mengakibatkan penamatan skrip. PHP menawarkan beberapa mekanisme terbina dalam untuk mengendalikan dan bertindak balas terhadap ralat.
PHP mempunyai pelbagai jenis ralat yang boleh berlaku:
PHP membolehkan anda mengawal jenis ralat yang harus dilaporkan menggunakan fungsi error_reporting() atau dengan menetapkan arahan error_reporting dalam fail php.ini.
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
Tahap pelaporan ralat yang paling biasa ialah:
Anda boleh menangani ralat menggunakan fungsi PHP terbina dalam:
Contoh:
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
Contoh:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
pengecualian ialah mekanisme yang membolehkan anda mengendalikan ralat masa jalan dengan lebih anggun. Tidak seperti ralat tradisional, pengecualian membolehkan anda menangkap ralat dan mengendalikannya dengan cara terkawal.
Anda boleh membuang pengecualian dalam PHP menggunakan kata kunci lontaran. Apabila pengecualian dilemparkan, aliran biasa atur cara terganggu dan kawalan dihantar ke blok tangkapan terdekat yang boleh mengendalikan pengecualian.
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
Untuk menangkap pengecualian, anda menggunakan blok cuba-tangkap. Blok cuba mengandungi kod yang mungkin membuang pengecualian, manakala blok tangkapan mengandungi kod yang mengendalikan pengecualian.
// Trigger a custom user error trigger_error("This is a custom error!", E_USER_NOTICE);
Apabila pengecualian ditangkap, objek kelas pengecualian dihantar ke blok tangkapan. Objek ini mengandungi maklumat berguna tentang pengecualian, seperti:
Anda boleh menentukan kelas pengecualian tersuai dengan melanjutkan kelas Pengecualian terbina dalam PHP. Ini membolehkan anda membuat jenis pengecualian yang lebih khusus yang boleh ditangkap dan dikendalikan secara berbeza.
// Throwing an exception throw new Exception("Something went wrong!");
Jika pengecualian dilemparkan tetapi tidak ditangkap oleh mana-mana blok tangkapan, PHP akan menghasilkan ralat maut dan memaparkan mesej yang menunjukkan bahawa pengecualian itu tidak ditangkap. Untuk mengelakkan perkara ini, sentiasa pastikan kod anda mengandungi blok try-catch yang betul untuk pengecualian yang mungkin dilemparkan.
Contoh ralat log masuk php.ini:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
Ralat:
Pengecualian:
Dalam PHP, kedua-dua pengendalian ralat dan exception adalah penting untuk memastikan aplikasi anda mengendalikan situasi yang tidak dijangka dengan baik. Ralat biasanya digunakan untuk isu segera seperti ralat sintaks dan amaran, manakala pengecualian menyediakan cara yang lebih mantap dan fleksibel untuk menangani masalah masa jalan. Dengan memahami perbezaan dan menggunakan pendekatan yang betul dalam konteks yang betul, anda boleh mencipta aplikasi PHP yang lebih dipercayai dan boleh diselenggara.
Atas ialah kandungan terperinci Cara PHP Mengendalikan Ralat dan Pengendalian Pengecualian: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!