东软专业力考试--Java异常处理

​1. 关于Java异常继承体系,以下说法正确的是?​

A. ErrorException都继承自Throwable,且ExceptionError的子类

B. RuntimeException继承自Exception,属于Checked Exception

C. Throwable是所有异常和错误的根类,ErrorException是其直接子类

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接口的资源,自动关闭顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值