Spring 面试题, Spring MVC 中如何处理异常?
Spring 面试题, Spring MVC 中如何处理异常?
QA
Step 1
Q:: Spring MVC 中如何处理异常?
A:: 在 Spring MVC 中处理异常可以通过以下几种方式进行:
1.
使用 @ExceptionHandler
注解:在控制器类中定义一个方法,使用 @ExceptionHandler
注解指定要处理的异常类型。这种方式适用于处理单个控制器类中的异常。
2.
使用 @ControllerAdvice
注解:可以定义一个全局异常处理器类,使用 @ControllerAdvice
注解,这样该类中的所有 @ExceptionHandler
方法都会在整个应用范围内生效。
3.
配置全局异常处理:可以在 Spring 配置文件中配置全局的异常处理机制,例如通过 SimpleMappingExceptionResolver
或者使用 HandlerExceptionResolver
接口实现自定义的异常处理逻辑。
4.
使用 @ResponseStatus
注解:当某个异常发生时,直接在异常类上使用 @ResponseStatus
注解设置对应的 HTTP 状态码。
Step 2
Q:: 如何在 Spring MVC 中自定义异常处理器?
A:: 在 Spring MVC 中自定义异常处理器主要有以下几种方式:
1.
实现 HandlerExceptionResolver
接口:这是 Spring 的底层异常处理机制。通过实现该接口并注册为一个 bean,您可以完全控制异常的处理过程。
2.
使用 @ExceptionHandler
注解:在控制器类中定义方法并使用该注解处理特定类型的异常。您可以返回 ModelAndView
对象,或者返回 ResponseEntity
以自定义响应。
3.
使用 @ControllerAdvice
注解:创建一个带有 @ControllerAdvice
注解的类,并在其中使用 @ExceptionHandler
注解定义全局异常处理逻辑。