2024-07-14|閱讀時間 ‧ 約 24 分鐘

PHP入門-Day9:例外處理

為什麼要使用「例外處理」

例外處理是一種程式設計技術,用於處理運行時可能發生的異常狀況或錯誤。它的主要目的包括:

  • 提高程式碼的穩定性和可靠性: 通過處理可能的異常情況,防止程式崩潰或未預期的行為。
  • 改善代碼的可讀性和可維護性: 通過將錯誤處理邏輯集中在一個地方,使代碼更易於理解和維護。
  • 提供優雅的錯誤信息處理: 可以捕獲異常、記錄錯誤信息並采取適當的措施來處理。

語法

在 PHP 中,使用 try...catch 块來處理異常。基本語法如下:

try {
// 可能會引發異常的程式碼
} catch (Exception $e) {
// 異常處理程式碼
}

如果 try 块中的程式碼引發了異常,控制流程就會轉移到對應的 catch 块,並執行相應的異常處理程式碼。

常見異常類型

在 PHP 中,有幾種常見的異常類型,例如:

  • Exception:所有異常的基類。
  • InvalidArgumentException:當函數的參數類型不正確時拋出。
  • RuntimeException:運行時錯誤的基類。
  • PDOException:用於處理與資料庫操作相關的異常。

主動觸發異常訊息

你可以使用 throw 關鍵字來主動引發異常,如下所示:

function divide($a, $b) {
if ($b == 0) {
throw new Exception("除數不能為零");
}
return $a / $b;
}

try {
echo divide(10, 0);
} catch (Exception $e) {
echo "錯誤訊息:" . $e->getMessage();
}

在這個例子中,如果 $b 為零,divide 函數將引發一個包含指定錯誤訊息的異常,然後在 catch 块中捕獲並輸出異常訊息。

主動觸發用戶自定義異常訊息

你也可以自定義一個繼承自 Exception 的新異常類別,以便更好地組織和管理不同類型的異常情況。

class CustomException extends Exception {
public function errorMessage() {
// 自訂異常訊息
return "自定義錯誤訊息:".$this->getMessage();
}
}

function checkNumber($number) {
if ($number > 10) {
throw new CustomException("數字不能大於 10。");
}
return true;
}

try {
checkNumber(15);
} catch (CustomException $e) {
echo $e->errorMessage();
}

在這個例子中,CustomException 是自定義的異常類別,它繼承自 Exception,並定義了一個 errorMessage 方法來返回自定義的錯誤訊息。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.