Spring 面试题, Spring 中的 @ExceptionHandler 注解的作用是什么?
Spring 面试题, Spring 中的 @ExceptionHandler 注解的作用是什么?
QA
Step 1
Q:: Spring 中的 @
ExceptionHandler 注解的作用是什么?
A:: @ExceptionHandler 注解用于在 Spring MVC 中处理特定类型的异常。它通常应用在控制器类或控制器方法中,当该类或方法抛出异常时,@
ExceptionHandler 标注的方法将被自动调用,以捕获并处理该异常。这样可以避免在每个控制器中重复编写相同的异常处理逻辑,简化代码,并提高应用程序的可维护性。
Step 2
Q:: 如何在 Spring 中全局处理异常?
A:: 在 Spring 中,可以通过在一个类上使用 @ControllerAdvice 注解结合 @ExceptionHandler 来全局处理异常。@
ControllerAdvice 注解允许在应用程序的任何控制器抛出异常时,拦截并处理这些异常。这种方法常用于定义全局的异常处理逻辑,比如返回统一的错误响应格式。
Step 3
Q:: @ExceptionHandler 如何与 @
ResponseStatus 结合使用?
A:: @ExceptionHandler 可以与 @ResponseStatus 注解结合使用,以便在处理异常时设置 HTTP 响应状态码。例如,如果捕获到特定异常,可以使用 @ResponseStatus(HttpStatus.NOT_FOUND) 来返回 404
错误。这样能够更清晰地表达异常发生时的 HTTP 状态,提升 API 的可读性和一致性。
Step 4
Q:: 在 Spring 中,如何处理自定义异常?
A:: 你可以创建自定义异常类,并在控制器中使用 @ExceptionHandler 来处理这些自定义异常。例如,可以定义一个 ResourceNotFoundException 并在对应的 @
ExceptionHandler 方法中处理它,从而为客户端返回一个特定的错误信息或 HTTP 状态码。