在PHP中,面向對象編程可以通過使用異常處理機制來處理錯誤和異常情況。PHP的異常處理主要依賴于try
、catch
、throw
和finally
這幾個關鍵字。下面是一個簡單的例子來說明如何使用這些關鍵字處理異常:
<?php
class CustomException extends Exception
{
public function __construct($message, $code = 0, Exception $previous = null)
{
parent::__construct($message, $code, $previous);
}
public function __toString()
{
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
}
class MyClass
{
public function myFunction($param)
{
if ($param < 0) {
throw new CustomException("參數不能為負數");
}
return $param * 2;
}
}
try {
$myObject = new MyClass();
$result = $myObject->myFunction(-5); // 這里會拋出一個CustomException異常
} catch (CustomException $e) {
echo "捕獲到自定義異常: " . $e->getMessage(); // 輸出: 捕獲到自定義異常: 參數不能為負數
} catch (Exception $e) {
echo "捕獲到一般異常: " . $e->getMessage();
} finally {
echo "無論是否發生異常,都會執行這里";
}
?>
在這個例子中,我們創建了一個名為CustomException
的自定義異常類,它繼承自PHP的內置Exception
類。然后,在MyClass
類中,我們定義了一個名為myFunction
的方法,該方法會檢查輸入參數是否為負數。如果是負數,就拋出一個CustomException
異常。
在主程序中,我們使用try
語句來調用可能拋出異常的代碼。如果myFunction
方法拋出了CustomException
異常,catch
語句將捕獲該異常并執行相應的處理代碼。如果沒有捕獲到異常,finally
語句將始終執行。