java异常分类
java异常分类
在Java中,异常错误被分为三大类:严重错误(ERROR),检查型异常(Checked Exceptions)和非检查型异常(Unchecked Exceptions)。这两类异常的主要区别在于它们如何被处理和传播。
严重错误(Error)
Error是Throwable的直接子类之一,它代表严重的问题,通常是由Java虚拟机(JVM)或运行时环境抛出的。Error类表示的错误条件通常是不可恢复的,应用程序不应该尝试捕获或处理这些错误。
检查型异常(Checked Exceptions):
检查型异常是编译时异常,这意味着编译器会强制要求程序员处理这些异常。如果一个方法抛出了检查型异常,那么调用这个方法的地方必须要么捕获这个异常并处理,要么在方法签名中声明抛出该异常。
检查型异常通常用于表示那些预期之外的情况,但程序员可以合理地预期并处理这些情况,例如文件不存在(FileNotFoundException)、网络连接失败(IOException)等。
检查型异常是Exception类或其子类,但不包括RuntimeException及其子类。
非检查型异常(Unchecked Exceptions):
非检查型异常是运行时异常,编译器不强制要求程序员处理这些异常。如果一个方法抛出了非检查型异常,调用这个方法的地方可以捕获并处理,也可以不处理。
非检查型异常通常用于表示程序错误,如逻辑错误、错误的API使用等。这些异常往往是不可恢复的,因为它们通常表示代码中的缺陷。
非检查型异常包括RuntimeException及其子类,如NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException等。
上一篇:cglib与jdk代理的区别
下一篇:BigDecimal
相关文章
-
接口和抽象类的区别?
接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:
NEW个对象 2025-01-10
-
BigDecimal
为什么不能用BigDecimal的equals方法做等值比较? 两个BigDecimal的数值进行比较的话,可以使用compareTo方法。 以:0.1和0.10为例子,equals会比较value和精度,很显然这两个数的精度不一样,会返回false
NEW个对象 2025-02-11
-
如何出现栈溢出?
递归不断的调用自己,没有终止条件。
NEW个对象 2025-02-11