我寫了一個簡單的腳本,可以印出每個 PHP 版本的 Throwable 和 Exception 樹狀結構。
您可以在這裡找到這個腳本
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a
其輸出結果在這裡
https://3v4l.org/sDMsv
(PHP 7, PHP 8)
Throwable 是任何可透過 throw
陳述式拋出的物件的基礎介面,包含 Error 和 Exception。
注意:
PHP 類別不能直接實作 Throwable 介面,而必須繼承 Exception。
版本 | 說明 |
---|---|
8.0.0 | Throwable 現在實作了 Stringable 介面。 |
我寫了一個簡單的腳本,可以印出每個 PHP 版本的 Throwable 和 Exception 樹狀結構。
您可以在這裡找到這個腳本
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a
其輸出結果在這裡
https://3v4l.org/sDMsv
try {
// 可能拋出 Exception 或 Error 的程式碼。
} catch (Throwable $t) {
// 僅在 PHP 7 中執行,在 PHP 5.x 中不匹配
} catch (Exception $e) {
// 僅在 PHP 5.x 中執行,在 PHP 7 中不會執行到
}
interface MyPackageThrowable extends Throwable {}
class MyPackageException extends Exception implements MyPackageThrowable {}
throw new MyPackageException();