切换语言为:繁体

Java-异常处理常见问题

  • 爱糖宝
  • 2024-05-17
  • 2078
  • 0
  • 0

什么是受检异常和非受检异常?

受检异常(Checked Exception),表示的是在编译的时候,要强制检查的异常。

这种异常需要通过 try/catch 进行捕获,或通过 throws 去抛出去,否则程序无法通过编译。

除了 RuntimeException 及其子类以外,其他的 Exception 类及其子类都属于受检异常 。

Java-异常处理常见问题

非受检异常

非受检异常(UnChecked Exception),表示的是在编译的时候,不需要强制检查的异常,不会报错。

RuntimeException 及其子类都统称为非受检查异常,常见的有

异常

说明

NullPointerException

空指针错误

IllegalArgumentException

参数错误

ArrayIndexOutOfBoundsException

数组越界错误

ClassCastException

类型转换错误

finally一定会被执行吗?

finally 是一个关键字,用于定义一个代码块,该代码块中的代码无论是否发生异常都会被执行。一般用于释放资源或者进行清理操作,以确保在程序发生异常时资源被正确地关闭。

正常情况下,无论try块中的代码是否发生异常,finally块中的代码都会被执行。有些特殊情况可能不被执行,如下:

  1. 在try块中调用了System.exit()导致程序终止;

  2. 在try块或catch块中发生了无限循环或死循环,导致程序无法正常结束;

  3. 在try块或catch块中调用了Thread.stop()导致线程被强制终止。

下一个 Java-JMM浅析

0条评论

您的电子邮件等信息不会被公开,以下所有项均必填

OK! You can skip this field.