我写了一个简单的脚本,它为每个 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 {
// 可能抛出异常或错误的代码。
} 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();