Dalam PHP, pernyataan cuba tangkap dengan kata kunci lontaran boleh digunakan untuk menangkap pengecualian dalam program Pengecualian yang dijana dalam kod atur cara boleh dilontarkan oleh pernyataan lontaran cuba dan ditangkap oleh sintaks "cuba{ //Code}catch(Exception $e){//Output error}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
Saya ingin menangkap pengecualian dalam program dalam PHP , perlu menggunakan kenyataan cuba tangkap dan melontar kata kunci untuk mencapainya. Pernyataan try catch adalah serupa dengan pernyataan kawalan aliran, jadi anda boleh menggunakan pernyataan try catch untuk melaksanakan struktur pemilihan bersyarat alternatif dan kata kunci lontaran boleh membuang pengecualian. Format sintaks pernyataan cuba tangkap adalah seperti berikut:
try{ // 可能出现异常或错误的代码,比如文件操作、数据库操作等 }catch(Exception $e){ // $e 为一个异常类的对象 // 输出错误信息 }
Kod yang memerlukan pengendalian pengecualian mesti diletakkan dalam blok kod cuba untuk menangkap kemungkinan pengecualian. Setiap percubaan mesti mempunyai sekurang-kurangnya satu tangkapan yang sepadan. Gunakan berbilang tangkapan untuk menangkap pengecualian yang dijana oleh kelas yang berbeza.
Apabila blok kod cuba tidak lagi melemparkan pengecualian atau tiada tangkapan ditemui sepadan dengan pengecualian yang dilemparkan, kod PHP akan meneruskan pelaksanaan selepas melompat ke tangkapan terakhir.
Pengecualian yang dijana dalam kod PHP boleh dilemparkan dengan pernyataan lontaran dan ditangkap oleh pernyataan tangkapan. Sudah tentu, PHP membenarkan pengecualian dilemparkan semula dalam blok tangkapan.
Apabila pengecualian dilemparkan, kod berikutnya tidak akan terus dilaksanakan dan PHP akan cuba untuk terus mencari tangkapan padanan pertama. Jika pengecualian tidak ditangkap dan tidak dikendalikan dengan sewajarnya menggunakan set_exception_handler(), ralat serius akan berlaku dan mesej UncaughtException... akan dikeluarkan.
【Contoh】Gunakan cuba tangkap dan lempar untuk menangkap pengecualian dalam program.
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./test')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 12345); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>
Keputusan yang dijalankan adalah seperti berikut:
捕获异常:抛出异常信息,并跳出 try 语句块 错误代码:12345 继续执行 try catch 语句之外的代码
Dalam kod sampel, dalam blok pernyataan cuba, cuba tentukan sama ada terdapat direktori bernama ujian dalam direktori semasa . Jika direktori ini tidak wujud, , maka kod pada baris 7 akan dilaksanakan dan pengecualian akan dilemparkan melalui lontaran kata kunci. Pengecualian ini ialah objek kelas Pengecualian, dijana melalui kata kunci baharu, dan objek dimulakan dengan mesej ralat $err dan kod ralat 12345, supaya maklumat ini boleh diperolehi apabila pengecualian ditangkap kemudian (baris 11 daripada kod).
Setelah pengecualian dilemparkan, baki kod dalam blok pernyataan cuba tidak lagi akan terus dilaksanakan Aliran program akan dipindahkan ke blok pernyataan tangkapan yang sepadan untuk pelaksanaan, dan akhirnya mesej ralat dan kod akan menjadi output dengan memanggil fungsi ahlinya melalui objek Pengecualian.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Cara menggunakan php try catch statement. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!