Web 應用程式面對複雜的業務邏輯、多樣的硬體環境與不可信的使用者輸入,錯誤在所難免。PHP 5 引入例外處理機制前,開發者只能靠「回傳錯誤代碼 + 記錄 Log」的原始方式,導致程式碼斷斷續續、錯誤傳遞極其繁瑣。例外處理徹底解決了這些痛點。
if ($result === 'error') 判斷讓主流程被打斷。try-catch 捕捉即可。DatabaseException, ValidationException),並在類別內封裝記錄 Log、發送通知等行為。<?php
// 自訂例外類別
class AppException extends Exception {
public function log() {
error_log("[{$this->getCode()}] {$this->getMessage()} in {$this->getFile()}:{$this->getLine()}");
}
}
// 可能拋出例外的函數
function getResult($a, $b) {
if ($b == 0) {
throw new AppException("除數不能為零", 1001);
}
return $a / $b;
}
// 統一捕捉處理
try {
$result = getResult(10, 0);
echo "結果: $result";
} catch (AppException $e) {
$e->log();
die("系統暫時無法處理您的請求,請稍後再試。");
} catch (Exception $e) {
// 捕捉其他未預期例外
error_log("未知錯誤: " . $e->getMessage());
die("發生未預期錯誤。");
}
?>
掌握例外處理,是邁向專業 PHP 開發者的關鍵里程碑。