java面试题-异常类

2.所有程序可处理异常的共同父类是?

A. Error

B. Exception

C. Throwable

D. RuntimeException

 

 

正确答案是:B

error异常是无法捕获处理的。

1.Error:

1) 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序(比如 JVM自身)处于非正常的、不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如 OutOfMemoryError 之类,都是 Error 的子类。
2)Error就是Java运行时内部错误与资源耗尽错误,这种内部错误一旦出现,除了告知用户并使程序安全终止之外,在无能为力,断电。
2.Exception(程序出错):

Exception 又分为受查(checked)异常和不受查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。前面我介绍的不可查的 Error,是Throwable 不是 Exception。不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求
Exception是程序正常运行过程中,可以预料的异常情况,可以对他们进行捕捉,并进行相应的处理
1)  IOException:程序本身没有问题,由于IO处理程序导致出错

2)   RuntimeException:经常性出现的错误,可以捕获,并作出处理,可以不捕获,也可以不用抛出。                     ArrayIndexOutOfBoundsException像:这种异常可以不捕获,为什么呢?在一个程序里,使用很多数组,如果使用一次捕获一次,则很累。

非受查异常:由于继承与Error或RuntimeException(空指针,类型转换)的异常类称为非受查异常

受查异常(必须强制处理):所有继承Exception与IOException的称为受查异常

原文链接:https://blog.****.net/qq_40955824/article/details/89815159

 

java面试题-异常类

图片源自网络:https://www.cnblogs.com/myworld7/p/10424737.html