Java中错误和未检查异常之间的区别?

2022-09-05 00:21:14

我们知道,如果发生任何错误或任何未经检查的异常,那么我们的程序将停止,那么它们之间有什么区别?


答案 1

总之:

您可以,并且可能应该从异常中恢复。

您可以(但不应)从错误中恢复。


答案 2

来自错误 Javadoc:

Error 是 Throwable 的一个子类,它指示合理的应用程序不应尝试捕获的严重问题。大多数此类错误都是异常情况。ThreadDeath 错误虽然是“正常”情况,但也是 Error 的子类,因为大多数应用程序不应尝试捕获它。

异常 Javadoc 的对比

类 Exception 及其子类是 Throwable 的一种形式,它指示合理的应用程序可能想要捕获的条件。

因此,即使不需要捕获未经检查的异常,您也可能需要这样做。一个错误,你不想抓住。