全局异常统一处理专项测试
考察知识点
- @ExceptionHandler局部异常处理
- @ControllerAdvice全局异常处理
- SimpleMappingExceptionResolver配置
- 自定义异常类设计
- 异常响应JSON格式封装
- 异常处理最佳实践
在SpringMVC中,以下哪种异常处理方式的作用范围最小?
SpringMVC提供的异常处理机制有哪些?
当同时配置了局部@ExceptionHandler和全局@ControllerAdvice异常处理时,如果两者都能处理同一异常类型,SpringMVC会优先执行全局异常处理器。
以下关于SpringMVC异常处理优先级的描述,哪个是正确的?
在SpringMVC中实现统一异常处理,通常需要:
- 定义__________类,继承RuntimeException,包含错误码和错误信息
- 使用_________________注解创建全局异常处理类
- 使用_________________注解定义异常处理方法
- 使用_____________注解返回JSON格式的错误信息
SpringMVC默认注册了哪些HandlerExceptionResolver?
在全局异常处理方法中,使用@ResponseBody注解后,返回的错误信息会以什么格式响应给客户端?
设计统一的JSON错误响应结构时,通常应该包含哪些必要字段?
在异常处理方法中返回ResponseEntity对象可以同时设置HTTP状态码和响应体内容。
使用ResponseEntity返回错误信息时:
- 创建______________对象,可以设置HTTP状态码和响应体
- 使用__________枚举指定状态码,如HttpStatus.___________表示400错误
- 响应体可以是Map或自定义的_____________对象
Spring Boot默认的错误处理机制中,访问哪个端点可以查看错误详情?
在Spring Boot中自定义全局异常处理,可以采用哪些方式?
Spring Boot 2.x中,当Controller抛出异常时,如果没有被@ExceptionHandler处理,异常会由哪个组件处理?
Spring Boot默认的错误响应JSON包含以下字段:
- _________:错误发生的时间戳
- ______:HTTP状态码
- ______:错误原因描述
- _______:详细错误信息
- ______:请求的URL路径
可通过实现_______________接口自定义这些字段。
@RestControllerAdvice注解等同于@ControllerAdvice和@ResponseBody的组合,用于RESTful API的全局异常处理。
设计自定义业务异常类时,通常应该继承哪个类?
自定义异常类中定义错误码字段的主要目的是?
设计一个自定义业务异常类BusinessException,通常需要包含以下属性:
- ______:错误码,用于前端识别错误类型
- _______:错误信息,用于展示给用户
- ______:附加数据,可选,携带更多上下文信息
该类应继承________________类,避免强制捕获。
在项目中可以定义多个自定义异常类,如UserNotFoundException、PermissionDeniedException等,以区分不同的业务异常场景。
以下关于SpringMVC/Spring Boot统一异常处理架构的描述,哪项是最佳实践?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验