在 PHP 中,異常是在程序運行時發生的錯誤,如果不加以處理,會導致程序終止運行。為了處理異常情況,可以使用 PHP 的異常處理機制,主要包括以下幾個關鍵字:try
、catch
、throw
和 finally
。
try
語句塊包裹可能拋出異常的代碼。catch
語句塊捕獲并處理異常。可以指定多個 catch
語句塊來捕獲不同類型的異常。throw
語句顯式拋出異常。可以在 catch
語句塊中使用 throw
語句重新拋出捕獲的異常,或者在程序的其他地方拋出異常。finally
語句塊,無論是否發生異常,都會執行該語句塊中的代碼。以下是一個簡單的 PHP 異常處理示例:
<?php
function divide($numerator, $denominator) {
if ($denominator == 0) {
throw new DivisionByZeroException("除數不能為 0");
}
return $numerator / $denominator;
}
try {
echo divide(10, 2) . "\n"; // 輸出 5
echo divide(10, 0) . "\n"; // 拋出異常
echo divide(10, 5) . "\n"; // 不會執行,因為上一個語句拋出了異常
} catch (DivisionByZeroException $e) {
echo "捕獲到異常:" . $e->getMessage() . "\n"; // 輸出 "捕獲到異常:除數不能為 0"
} finally {
echo "無論是否發生異常,都會執行該語句塊\n";
}
?>
在這個示例中,我們定義了一個 divide
函數,用于計算兩個數的除法。當除數為 0 時,我們拋出一個自定義的 DivisionByZeroException
異常。在 try
語句塊中,我們調用 divide
函數,并捕獲可能拋出的異常。如果捕獲到異常,我們在 catch
語句塊中處理它;否則,程序將繼續執行。最后,無論是否發生異常,我們都會在 finally
語句塊中執行一段代碼。