如何在 PHP 中擷取和處理自訂異常?

PHPz
發布: 2024-05-09 22:00:03
原創
1199 人瀏覽過

在 PHP 中捕獲和處理自訂異常的方法:繼承 Exception 類別來建立自訂異常。使用 throw 關鍵字拋出自定義例外。使用 try、catch 和 finally 區塊捕獲和處理異常。

如何在 PHP 中捕获和处理自定义异常?

如何在PHP 中擷取並處理自訂例外

引言
#在PHP 中處理異常對於建立健壯和可維護的應用程式至關重要。自訂異常可讓您建立針對程式碼中的特定錯誤或異常情況量身定制的異常。本文將指導您了解如何擷取和處理自訂異常,並提供一個實戰案例來示範其用法。

建立自訂異常
要建立自訂異常,請使用extends 關鍵字繼承內建的Exception 類,並定義一個建構函式來接收錯誤訊息和可選的例外碼:

class MyCustomException extends Exception
{
    public function __construct($message, $code = 0)
    {
        parent::__construct($message, $code);
    }
}
登入後複製

拋出自訂例外
當在程式碼中遇到需要拋出自訂例外的情況時,請使用throw 關鍵字,後面跟著自訂例外類別的實例:

throw new MyCustomException("错误消息");
登入後複製

擷取和處理異常##使用
trycatchfinally 區塊來捕捉和處理例外:

try {
    // 代码可能会抛出异常
} catch (MyCustomException $e) {
    // 处理 MyCustomException 异常
} catch (Exception $e) {
    // 处理所有其他异常
} finally {
    //无论是否抛出异常都会执行此块
}
登入後複製

實戰案例考慮一個簡單的數學函數,它計算兩個數字之和。如果其中任一數字為負數,則拋出
NegativeNumberException 例外:

NegativeNumberException 類別:

class NegativeNumberException extends MyCustomException
{
    public function __construct($message = "不能对负数求和")
    {
        parent::__construct($message);
    }
}
登入後複製

數學函數:

function sum($a, $b)
{
    if ($a < 0 || $b < 0) {
        throw new NegativeNumberException();
    }

    return $a + $b;
}
登入後複製

使用:

try {
    $result = sum(-1, 2);
} catch (NegativeNumberException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}
登入後複製

輸出:

不能对负数求和
登入後複製

結論##在PHP中捕獲和處理自訂異常對建立健壯可靠的應用程式至關重要。透過繼承 Exception
類別並使用 trycatchfinally 區塊,您可以建立特定於您程式碼的錯誤處理策略。

以上是如何在 PHP 中擷取和處理自訂異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板