全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 20 道配套习题

全局异常统一处理专题

专题说明

本专题系统讲解SpringMVC异常处理机制,包括局部异常处理、全局异常处理、自定义异常解析器等多种方式。

学习目标

  1. 理解SpringMVC异常处理架构
  2. 掌握@ExceptionHandler局部异常处理
  3. 熟练使用@ControllerAdvice全局异常处理
  4. 掌握自定义HandlerExceptionResolver实现

学习内容

  • 异常处理体系架构
  • @ExceptionHandler注解
  • @ControllerAdvice全局处理
  • HandlerExceptionResolver接口
  • 自定义异常响应格式

学习建议

理解不同异常处理方式的作用范围,结合实际项目选择合适的异常处理策略。

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

📝 配套习题(20 题)

1
单选题

在SpringMVC中,以下哪种异常处理方式的作用范围最小?

A

@ExceptionHandler注解方法

B

@ControllerAdvice注解类

C

HandlerExceptionResolver接口实现

D

SimpleMappingExceptionResolver配置

2
多选题

SpringMVC提供的异常处理机制有哪些?

A

使用@ExceptionHandler注解定义局部异常处理方法

B

使用@ControllerAdvice定义全局异常处理类

C

实现HandlerExceptionResolver接口自定义异常解析器

D

配置SimpleMappingExceptionResolver映射异常到视图

E

使用try-catch在Controller方法中手动捕获异常

3
判断题

当同时配置了局部@ExceptionHandler和全局@ControllerAdvice异常处理时,如果两者都能处理同一异常类型,SpringMVC会优先执行全局异常处理器。

A

B

4
单选题

以下关于SpringMVC异常处理优先级的描述,哪个是正确的?

A

HandlerExceptionResolver优先于@ControllerAdvice执行

B

@ControllerAdvice优先于局部@ExceptionHandler执行

C

局部@ExceptionHandler优先于@ControllerAdvice执行

D

所有异常处理器并行执行,随机选择

5
填空题

在SpringMVC中实现统一异常处理,通常需要:

  1. 定义__________类,继承RuntimeException,包含错误码和错误信息
  2. 使用_________________注解创建全局异常处理类
  3. 使用_________________注解定义异常处理方法
  4. 使用_____________注解返回JSON格式的错误信息
6
单选题

SpringMVC默认注册了哪些HandlerExceptionResolver?

A

ExceptionHandlerExceptionResolver

B

ResponseStatusExceptionResolver

C

DefaultHandlerExceptionResolver

D

以上全部

7
单选题

在全局异常处理方法中,使用@ResponseBody注解后,返回的错误信息会以什么格式响应给客户端?

A

HTML页面

B

JSON格式

C

XML格式

D

纯文本格式

8
单选题

设计统一的JSON错误响应结构时,通常应该包含哪些必要字段?

A

code(错误码)和message(错误信息)

B

data(错误数据)和time(时间戳)

C

status(状态)和body(内容)

D

只有message字段即可

9
判断题

在异常处理方法中返回ResponseEntity对象可以同时设置HTTP状态码和响应体内容。

A

B

10
填空题

使用ResponseEntity返回错误信息时:

  1. 创建______________对象,可以设置HTTP状态码和响应体
  2. 使用__________枚举指定状态码,如HttpStatus.___________表示400错误
  3. 响应体可以是Map或自定义的_____________对象
11
单选题

Spring Boot默认的错误处理机制中,访问哪个端点可以查看错误详情?

A

/error

B

/exception

C

/errors

D

/api/error

12
多选题

在Spring Boot中自定义全局异常处理,可以采用哪些方式?

A

使用@ControllerAdvice和@ExceptionHandler

B

实现ErrorAttributes接口自定义错误属性

C

继承BasicErrorController类自定义错误控制器

D

在application.yml中配置server.error属性

E

实现 ErrorHandler 接口

13
单选题

Spring Boot 2.x中,当Controller抛出异常时,如果没有被@ExceptionHandler处理,异常会由哪个组件处理?

A

DispatcherServlet直接处理

B

BasicErrorController

C

HandlerExceptionResolver链

D

Tomcat容器

14
填空题

Spring Boot默认的错误响应JSON包含以下字段:

  1. _________:错误发生的时间戳
  2. ______:HTTP状态码
  3. ______:错误原因描述
  4. _______:详细错误信息
  5. ______:请求的URL路径

可通过实现_______________接口自定义这些字段。

15
判断题

@RestControllerAdvice注解等同于@ControllerAdvice和@ResponseBody的组合,用于RESTful API的全局异常处理。

A

B

16
单选题

设计自定义业务异常类时,通常应该继承哪个类?

A

Exception

B

RuntimeException

C

Throwable

D

Error

17
单选题

自定义异常类中定义错误码字段的主要目的是?

A

记录异常发生的行号

B

前端可以根据错误码进行精确的错误提示和逻辑处理

C

方便异常类之间的比较

D

作为异常的唯一标识符

18
填空题

设计一个自定义业务异常类BusinessException,通常需要包含以下属性:

  1. ______:错误码,用于前端识别错误类型
  2. _______:错误信息,用于展示给用户
  3. ______:附加数据,可选,携带更多上下文信息

该类应继承________________类,避免强制捕获。

19
判断题

在项目中可以定义多个自定义异常类,如UserNotFoundException、PermissionDeniedException等,以区分不同的业务异常场景。

A

B

20
单选题

以下关于SpringMVC/Spring Boot统一异常处理架构的描述,哪项是最佳实践?

A

所有异常都在Controller方法中使用try-catch捕获处理

B

定义自定义异常类,使用@RestControllerAdvice统一处理所有异常

C

只使用Spring Boot默认的/error端点处理异常

D

所有异常都直接抛出,由Servlet容器处理

← 上一个专题 MVC核心源码执行流程专题
下一个专题 → 容器级WEB组件扩展专题

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

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

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

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