Pengecualian dan pengendalian ralat dalam PHP: Pengecualian: ralat bukan maut yang boleh dipulihkan oleh program, dikendalikan menggunakan struktur cuba-tangkap. Ralat: Ralat serius yang tidak dapat dipulihkan oleh program, gunakan fungsi error_handler untuk mengendalikannya. Kes praktikal: tangkap pengecualian FileNotFoundException dan paparkan mesej mesra, kendalikan ralat TypeError dan paparkan mesej ralat.
Cara mengendalikan pengecualian dan ralat menggunakan PHP
Pengecualian dan ralat merupakan bahagian PHP yang tidak dapat dielakkan. Mengendalikan mereka dengan betul adalah penting untuk menulis aplikasi yang mantap dan boleh dipercayai.
Pengecualian dan Ralat
Mengendalikan pengecualian
PHP menggunakan strukturtry-catch
untuk mengendalikan pengecualian:try-catch
结构来处理异常:
try { // 代码块可能抛出异常 } catch (Exception $e) { // 异常处理代码 }
实战案例
考虑以下代码,它尝试读取不存在的文件:
try { $file = fopen('non-existent.txt', 'r'); } catch (Exception $e) { echo "文件不存在"; }
当脚本运行时,它会捕获FileNotFoundException
异常并显示一条友好消息。
处理错误
PHP 设置error_handler
函数来处理错误:
set_error_handler(function($errno, $errstr, $errfile, $errline) { // 错误处理代码 });
实战案例
考虑以下代码,它试图将一个字符串转换为整数:
$number = (int) "abc";
这会触发一个TypeError
set_error_handler(function($errno, $errstr, $errfile, $errline) { echo "错误: {$errstr} ({$errfile}:{$errline})"; });
Kes praktikal
Pertimbangkan kod berikut, yang tidak cuba membaca kod berikut wujud: rrreee Apabila skrip berjalan, ia menangkap pengecualianFileNotFoundException
dan memaparkan mesej mesra. Mengendalikan RalatPHP Sediakan fungsi
error_handler
untuk mengendalikan ralat: rrreeeContoh praktikalPertimbangkan kod berikut, yang cuba menukar kod berikut: rrreeeIni Akan mencetuskan ralat
TypeError
. Kita boleh menetapkan pengendali ralat berikut untuk mengendalikannya: rrreeeSelepas skrip berjalan, ia akan memaparkan mesej ralat: "Ralat: Argumen tidak sah dibekalkan untuk foreach() (err.php:12)".
Atas ialah kandungan terperinci Cara mengendalikan pengecualian dan ralat dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!