帮忙么网 > JAVA > 当前页面

java异常分类

2025-01-18 NEW个对象

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

推荐文章