1. 关于Java异常继承体系,以下说法正确的是?
A. Error和Exception都继承自Throwable,且Exception是Error的子类
B. RuntimeException继承自Exception,属于Checked Exception
C. Throwable是所有异常和错误的根类,Error和Exception是其直接子类
D. ClassNotFoundException属于RuntimeException
答案:C
解析: Java异常体系中,Throwable是根类,直接子类为Error(系统错误)和Exception(程序异常)。RuntimeException继承自Exception,属于Unchecked Exception。
2. 以下关于Checked Exception和Unchecked Exception的区别,错误的是?
A. Checked Exception必须在编译时处理,否则编译失败
B. NullPointerException是Checked Exception
C. Unchecked Exception包括RuntimeException及其子类
D. Checked Exception通常表示可恢复的外部问题(如文件不存在)
答案:B
解析: NullPointerException是Unchecked Exception(RuntimeException的子类)。Checked Exception(如IOException)需显式处理或声明抛出,而Unchecked Exception可由编译器忽略。
3. 以下代码的执行顺序是?
try {
System.out.print("A");
throw new RuntimeException();
} catch (RuntimeException e) {
System.out.print("B");
} finally {
System.out.print("C");
}
A. A → B → C
B. A → C → B
C. 仅输出A
D. 编译错误
答案:A
解析: 执行顺序为:try块输出"A"并抛出异常 → catch块捕获异常输出"B" → finally块总是执行输出"C"。
4. 关于多个catch块的排列顺序,正确的是?
A. 父类异常在前,子类异常在后
B. 子类异常在前,父类异常在后
C. 只能捕获一个异常类型
D. 所有异常必须用同一个catch块处理
答案:B
解析: catch块应按子类到父类的顺序排列,否则子类异常会被父类catch块屏蔽,导致编译警告。
5. finally块的作用是?
A. 仅当异常发生时执行资源清理
B. 无论是否发生异常都必须执行(如释放数据库连接)
C. 用于替代catch块处理异常
D. 仅在try块正常结束时执行
答案:B
解析: finally块通常用于释放资源(如关闭文件流),无论try块是否发生异常或存在return语句,finally块都会执行。
6. 以下关于try-with-resources的说法,正确的是?
A. 仅支持实现AutoCloseable接口的资源,自动关闭顺序

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



