Mekanisme pengendalian pengecualian dan penyelesaian masalah biasa dalam PHP
Dalam pengaturcaraan PHP, anda mungkin menghadapi pelbagai ralat, seperti ralat sintaks, ralat masa jalan dan ralat logik, dsb. Pada masa ini, untuk menyahpepijat dan mengurus kod dengan lebih baik, PHP menyediakan mekanisme pengendalian pengecualian. Artikel ini akan memperkenalkan mekanisme pengendalian pengecualian dalam PHP dan penyelesaian kepada masalah biasa.
1. Mekanisme pengendalian pengecualian
Pengecualian merujuk kepada situasi tidak dijangka yang berlaku semasa program berjalan, seperti fail yang tidak wujud, panggilan fungsi yang gagal, dsb. Apabila pengecualian berlaku dalam program, objek pengecualian boleh dilemparkan dan kemudian dikendalikan dalam pengendali pengecualian yang sepadan. Mekanisme pengendalian pengecualian dalam PHP termasuk empat kata kunci berikut: cuba, tangkap, akhirnya dan buang. Penggunaan asasnya adalah seperti berikut:
cuba {
// Blok kod yang mungkin membuang pengecualian
} tangkapan (Pengecualian $e) {
// Blok kod yang mengendalikan pengecualian
} akhirnya {
// Blok kod yang mesti dilaksanakan
}
Dalam kod di atas, blok kod selepas kata kunci try mungkin membuang pengecualian. Jika pengecualian memang dilemparkan, blok tangkapan yang sepadan akan dipadankan berdasarkan jenis pengecualian. Jika tiada blok tangkapan yang sepadan, pengecualian akan terus dikeluarkan sehingga blok tangkapan yang sepadan ditemui atau program tamat. Kod dalam blok akhirnya akan dilaksanakan tanpa mengira sama ada pengecualian berlaku. Kata kunci lontaran digunakan untuk membuang objek pengecualian secara manual. Berikut ialah contoh mudah:
cuba {
$file = fopen("nonexistentfile.txt", "r");
if (!$file) {
throw new Exception("文件不存在");
}
// Baca kandungan fail
fclose($file);
} tangkapan (Exception $e) {
echo "Exception caught:" ;
} akhirnya {
echo "Kod terakhir yang mesti dilaksanakan";
}
Dalam kod di atas, pernyataan $file = fopen("nonexistentfile.txt", "r") Akan cuba membuka fail yang tidak wujud, menyebabkan objek pengecualian dibuang. Kemudian padankan blok tangkapan yang sepadan dan laksanakan kod dalam blok akhirnya pada masa yang sama Outputnya adalah seperti berikut:
Pengecualian ditangkap: fail tidak wujud
Kod terakhir yang mesti dilaksanakan<🎜. >
// Blok kod yang mungkin membuang berbilang pengecualian
} tangkapan (Exception1 $e) {
// Blok kod yang mengendalikan Exception 1
} tangkapan (Exception2 $e) {
// Blok kod untuk mengendalikan pengecualian 2
} tangkapan (Exception $e) {
// Blok kod untuk mengendalikan pengecualian lain
} akhirnya {
// Blok kod yang mesti dilaksanakan
}
public function __construct($message="", $code=0, Exception $previous=null) {
parent::__construct($message, $code, $previous);
fungsi awam __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}
}
}
Apabila pengecualian berlaku dalam program, anda boleh menggunakan fungsi var_dump() atau print_r() untuk mencetak maklumat terperinci objek pengecualian untuk mencari masalah Contohnya:
}
Dalam kod di atas, apabila atur cara membuang pengecualian, ia akan menjadi output Semua maklumat tentang pengecualian objek, termasuk jenis pengecualian, kod ralat dan mesej ralat, dsb.
Ringkasan
Mekanisme pengendalian pengecualian ialah bahagian penting dalam pengaturcaraan PHP, yang boleh membantu kami Menyahpepijat dan mengurus kod sebenarnya pengekodan, anda perlu memilih jenis pengecualian dan kaedah pengendalian yang sesuai mengikut situasi tertentu, dan menambah pengendali pengecualian yang sepadan pada program Pada masa yang sama, anda perlu memberi perhatian untuk mengurangkan berlakunya pengecualian sebanyak mungkin untuk meningkatkan kestabilan program dan kebolehselenggaraan
Atas ialah kandungan terperinci Mekanisme pengendalian pengecualian dan penyelesaian masalah biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!