错误“表示合理的应用程序不应尝试捕获的严重问题”。
而
异常“指示合理的应用程序可能想要捕获的条件”。
错误
RuntimeException及其子类都是
unchecked例外。所有其他异常类都是
checked异常。
检查
异常通常是程序可以从中恢复的异常,最好以编程方式从此类异常中恢复。示例包括
FileNotFoundException,
ParseException等。希望程序员使用try-
catch块检查这些异常,或者将其扔回调用方。
另一方面,我们有 未经检查的
异常。如果一切正常,这些异常可能不会发生,但是它们确实会发生。示例包括
ArrayIndexOutOfBoundException,
ClassCastException等。许多应用程序将&
try-catch或
throws子句用于
RuntimeExceptions&的子类,但是从语言的角度来看,不需要这样做。请注意,
RuntimeException通常可以从a中进行恢复,但是设计类/异常的人认为最终程序员无需检查此类异常。
错误 也是未经检查的异常,程序员无需对此进行任何操作。实际上,
try-catch对错误使用子句是一个坏主意。通常,无法从错误中恢复,并且应允许程序终止。实例包括
OutOfMemoryError,
StackOverflowError等
请注意,尽管错误是未经检查的异常,但我们不应该尝试处理它们,但是可以
RuntimeExceptions在代码中处理(也包括未经检查的异常)。检查的异常应由代码处理。



