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

全局异常统一处理专题

专题说明

本专题系统讲解SpringBoot全局异常处理的核心技术,从异常处理原理到@ControllerAdvice与@ExceptionHandler的使用,再到自定义异常设计和统一响应体封装,最后处理404等容器级异常,全面构建完善的异常处理体系。

学习目标

  1. 理解Spring MVC异常处理的核心机制(HandlerExceptionResolver)
  2. 掌握@ControllerAdvice和@ExceptionHandler的使用方法
  3. 学会设计自定义业务异常类
  4. 掌握统一响应体的封装技巧
  5. 理解异常处理器的优先级规则
  6. 学会处理404等容器级异常

学习内容

  • Spring MVC异常处理原理(HandlerExceptionResolver)
  • Spring Boot默认/error端点机制
  • @ControllerAdvice与@ExceptionHandler组合使用
  • @RestControllerAdvice注解特点
  • 自定义异常类设计(继承RuntimeException)
  • 统一响应体封装(泛型设计ApiResponse)
  • 异常处理优先级规则
  • ErrorController处理容器级异常

学习建议

建议先理解异常处理原理,再掌握@ControllerAdvice与@ExceptionHandler的核心用法,然后学习自定义异常和统一响应体封装,最后处理容器级异常。注意理解局部处理器与全局处理器的优先级关系。

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

📝 配套习题(20 题)

1
单选题

Spring MVC处理异常的核心接口是什么,它负责解析异常并返回相应的ModelAndView?

A

HandlerInterceptor

B

HandlerExceptionResolver

C

ViewResolver

D

HandlerMapping

2
单选题

Spring Boot默认提供的错误处理端点是什么,访问它会显示错误详情?

A

/error

B

/exception

C

/fail

D

/problem

3
多选题

Spring Boot中实现全局异常处理的方式有哪些?

A

使用@ControllerAdvice注解

B

使用@ExceptionHandler注解

C

实现HandlerExceptionResolver接口

D

配置SimpleMappingExceptionResolver

4
填空题

Spring Boot默认的错误处理端点路径是______,可以通过配置server.error.path属性修改为自定义路径。默认的错误控制器类名是____________________

5
判断题

@ControllerAdvice注解标注的异常处理器可以处理所有Controller抛出的异常,包括Filter和其他组件抛出的异常。

A

B

6
单选题

@ControllerAdvice注解的主要作用是什么?

A

定义一个普通的Controller

B

定义全局的异常处理器和绑定器

C

定义数据访问层组件

D

定义业务逻辑层组件

7
单选题

@ExceptionHandler注解可以标注在方法上,用于处理哪些类型的异常?

A

只能处理RuntimeException

B

只能处理CheckedException

C

可以处理任意Exception类型

D

只能处理NullPointerException

8
多选题

@ExceptionHandler标注的方法可以接收哪些类型的参数?

A

Exception异常对象

B

HttpServletRequest请求对象

C

HttpServletResponse响应对象

D

Model模型对象

9
填空题

@ControllerAdvice注解用于定义全局异常处理器,如果需要返回JSON格式数据,应使用_____________________注解,它是@ControllerAdvice和_____________的组合注解。

10
判断题

在普通Controller内部定义的@ExceptionHandler方法只能处理当前Controller抛出的异常,不能处理其他Controller的异常。

A

B

11
单选题

在Spring Boot项目中,自定义业务异常通常继承哪个类?

A

Error类

B

RuntimeException类

C

Exception类

D

Throwable类

12
单选题

自定义业务异常通常携带错误码(code)字段,其主要目的是什么?

A

只是为了美观

B

区分不同类型的业务错误,便于前端处理

C

用于日志记录的唯一标识

D

用于数据库存储

13
多选题

自定义业务异常类通常应该包含哪些字段?

A

错误码(code)

B

错误消息(message)

C

HTTP状态码(status)

D

发生时间(timestamp)

14
单选题
A

增加代码复杂度

B

支持任意类型的数据封装,增强通用性

C

减少内存占用

D

提高编译速度

15
多选题

统一响应体通常包含哪些字段?

A

状态码(code)

B

提示消息(message)

C

业务数据(data)

D

时间戳(timestamp)

16
多选题

以下哪些因素会影响Spring异常处理器的选择优先级?

A

异常类型的精确程度

B

处理器的定义位置(局部vs全局)

C

异常类的继承层次深度

D

处理器方法的名称长度

17
判断题

项目中可以定义多个@ControllerAdvice类,它们的处理顺序可以通过@Order注解控制。

A

B

18
填空题

Spring Boot默认的错误端点路径是______,可以通过实现_______________接口自定义错误处理逻辑。获取错误状态码可以通过request.getAttribute(RequestDispatcher.!3_ERROR_STATUS_CODE!!)方法。

19
判断题

在Spring Boot中,可以通过在templates/error目录下放置404.html、500.html等页面文件来自定义错误页面。

A

B

20
单选题

当一个请求到达Spring Boot应用但找不到对应的Handler时,异常处理的完整流程是什么?

A

直接返回404页面,不经过任何异常处理

B

DispatcherServlet捕获 → BasicErrorController处理 → 返回/error响应

C

@ControllerAdvice捕获 → @ExceptionHandler处理

D

Filter捕获 → 转发到自定义页面

← 上一个专题 SpringBoot Web 开发专题
下一个专题 → 内嵌容器深度调优专题

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

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

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

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