在 PHP 中,Throwable
和 Exception
都是异常处理的核心类,但它们之间存在一些关键区别:
-
Throwable(PHP 7 及更高版本引入):
- Throwable 是 PHP 7 中引入的一个基类,它是 Exception 和 Error 类的祖先。
- Throwable 类包含了两个主要的公共方法:
getMessage()
和getCode()
,分别用于获取异常消息和异常代码。 - Throwable 还包含了一些受保护的属性,如
$file
、$line
和$previous
,这些属性用于存储异常发生的文件、行号和上一个异常对象。 - Throwable 类支持自定义异常处理程序,可以通过
setHandler()
方法设置一个全局的异常处理器。
-
Exception(PHP 5 及更高版本引入):
- Exception 是 Throwable 的一个子类,用于表示程序中出现的可恢复的错误。
- Exception 类包含了两个主要的公共方法:
getMessage()
和getCode()
,分别用于获取异常消息和异常代码。 - Exception 类还包含了一些受保护的属性,如
$file
、$line
和$previous
,这些属性用于存储异常发生的文件、行号和上一个异常对象。 - Exception 类支持自定义异常处理程序,可以通过
setHandler()
方法设置一个全局的异常处理器。
总结一下,Throwable 是 PHP 7 中引入的一个更通用的异常基类,它包含了 Exception 和 Error 类。Exception 类用于表示可恢复的错误,而 Error 类用于表示不可恢复的错误(如致命错误)。在实际编程中,我们通常使用 Exception 类来处理异常情况。