请解释 Spring 中 @ExceptionHandler 注解的用途。
考察说明
考查候选人对 Spring MVC 异常处理机制的理解。
回答思路
- 【回答框架 1】@ExceptionHandler 用于在 Controller 或 @ControllerAdvice 中标注方法,以处理特定异常。它通过异常类型匹配,将抛出的异常映射到对应方法。
- 【回答框架 2】标注在 Controller 内时,仅处理该 Controller 的异常;标注在 @ControllerAdvice 中时,可全局处理多个 Controller 的异常。
- 【回答框架 3】方法可以接收异常对象、HttpServletRequest、HttpServletResponse 等参数,返回值可以是 ModelAndView 或 @ResponseBody 数据。
- 【回答框架 4】@ExceptionHandler 与 @ControllerAdvice 结合,实现统一异常处理和响应格式,避免在每个 Controller 重复处理。
- 【回答框架 5】使用时应定义合理的异常类型匹配顺序,避免父类异常捕获子类异常导致处理不精确。
- 【关键点 1】@ExceptionHandler 注解方法用于处理特定异常。
- 【关键点 2】结合 @ControllerAdvice 可全局管理异常。
- 【关键点 3】方法返回值可决定响应类型。
- 【关键点 4】异常类型匹配由近及远,子类优先。
- 【关键点 5】可结合 @ResponseStatus 设置响应码。
- 【易错点 1】异常匹配顺序不当导致处理错误。
- 【易错点 2】未在 @ControllerAdvice 中配置导致影响范围不符预期。
- 【易错点 3】处理异常后未设置合适的响应状态或视图。