全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

JAVA异常处理专题测试

20 题 40 分钟 难度:

考察知识点

本试卷涵盖以下核心知识点:

异常的概念与分类(4题)

  • 异常的定义(运行时不正常事件)
  • 异常体系结构(Throwable、Error、Exception)
  • Error与Exception的区别
  • 检查异常与非检查异常的区别

try-catch-finally语句(6题)

  • try-catch基本语法与作用
  • catch块匹配顺序(子类在前父类在后)
  • finally块的执行时机
  • finally与return的关系
  • finally唯一不执行的情况(System.exit())
  • 多个catch块的排列规则

throws关键字(2题)

  • throws声明异常的作用
  • throws声明多个异常
  • throws与检查异常的处理

throw关键字(2题)

  • throw与throws的区别
  • throw抛出异常后流程中断
  • throw抛出检查异常需要声明或捕获

自定义异常(3题)

  • 自定义异常继承选择(Exception或RuntimeException)
  • 自定义异常构造方法设计
  • 自定义异常命名规范(Exception后缀)

异常链与多重捕获(3题)

  • 异常链概念与cause设置
  • getCause()获取原始异常
  • Java 7多重捕获语法(catch(A | B e))
  • 多重捕获的异常不能有继承关系
1
单选题

Java中异常是指什么?

A

程序编译时的错误

B

程序运行时发生的不正常事件

C

程序逻辑错误

D

语法错误

2
单选题

Java异常体系的根类是什么?

A

Exception

B

Error

C

Throwable

D

RuntimeException

3
单选题

Error和Exception的主要区别是什么?

A

Error可以被捕获处理,Exception不能

B

Error是严重问题程序无法处理,Exception可以被捕获处理

C

没有区别

D

Error是编译时错误,Exception是运行时错误

4
单选题

以下哪个是检查异常?

A

NullPointerException

B

ArrayIndexOutOfBoundsException

C

IOException

D

ArithmeticException

5
单选题

try-catch语句的作用是什么?

A

定义异常

B

捕获和处理异常

C

抛出异常

D

声明异常

6
单选题

多个catch块的排列顺序应该遵循什么原则?

A

随意排列,无顺序要求

B

从具体异常到通用异常(子类在前,父类在后)

C

从通用异常到具体异常

D

按字母顺序排列

7
单选题

finally块什么时候执行?

A

只有异常发生时执行

B

只有异常未发生时执行

C

无论是否发生异常都会执行

D

只有catch块执行后才执行

8
单选题

try块中有return语句,finally块还会执行吗?

A

不执行,直接返回

B

会执行,在return之前执行

C

会执行,在return之后执行

D

取决于异常是否发生

9
单选题

什么情况下finally块不会执行?

A

catch块抛出异常

B

try块有return

C

System.exit()在try或catch中调用

D

程序正常运行

10
单选题

以下代码会发生什么?

Java
try {
    throw new NullPointerException();
} catch (Exception e) {
    System.out.println("Exception");
} catch (NullPointerException e) {
    System.out.println("NullPointerException");
}
A

输出NullPointerException

B

输出Exception

C

编译错误

D

无输出

11
单选题

throws可以声明多个异常吗?

A

只能声明一个异常

B

可以声明多个异常,用逗号分隔

C

只能声明Exception

D

不能声明RuntimeException

12
单选题

以下代码会编译成功吗?

Java
public void readFile() throws IOException {
    FileReader fr = new FileReader("test.txt");
}
A

编译成功

B

编译失败,需要try-catch

C

编译失败,throws不能用在方法上

D

编译失败,缺少return

13
单选题

throw和throws的区别是什么?

A

没有区别

B

throw抛出异常对象,throws声明可能抛出的异常

C

throw用在方法签名,throws用在代码中

D

throw声明异常,throws抛出异常

14
单选题

以下代码的输出结果是什么?

Java
public void test() {
    throw new RuntimeException("Error");
    System.out.println("After throw");
}
A

输出After throw

B

抛出RuntimeException,不输出After throw

C

编译错误

D

无输出无异常

15
单选题

自定义非检查异常应该继承哪个类?

A

Exception

B

RuntimeException

C

Error

D

Throwable

16
单选题

自定义异常类通常需要提供哪些构造方法?

A

只需要无参构造方法

B

无参构造方法和带String参数的构造方法

C

只需要带参数的构造方法

D

不需要构造方法

17
单选题
A

throw e.setCause(original)

B

使用带Throwable参数的构造方法或initCause()

C

使用setMessage()

D

自动设置

18
判断题
A

B

19
多选题
A

多重捕获catch(A | B e)

B

try-with-resources自动关闭资源

C

异常链initCause()

D

final重抛

20
填空题
← 上一个试卷 JAVA常用工具类专题测试
下一个试卷 → JAVA性能调优实战专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库