Spring面试题, Spring 中的 @ExceptionHandler 注解的作用是什么?
Spring面试题, Spring 中的 @ExceptionHandler 注解的作用是什么?
QA
Step 1
Q:: Spring 中的 @
ExceptionHandler 注解的作用是什么?
A:: @
ExceptionHandler 注解用于定义一个方法,该方法将处理特定类型的异常。它允许我们在控制器中集中处理异常,提供更清晰和集中的异常处理逻辑,而不是在每个方法中处理异常。
Step 2
Q:: @
ExceptionHandler 的使用场景和配置方式有哪些?
A:: 使用 @ExceptionHandler 的常见场景包括处理控制器层的特定异常,返回自定义的错误响应等。配置方式包括:在控制器中直接使用 @ExceptionHandler 注解方法处理异常;在全局异常处理类(通常用 @ControllerAdvice 注解标识)中定义 @
ExceptionHandler 方法,以便在整个应用中处理异常。
Step 3
Q:: 如何在 Spring Boot 中全局处理异常?
A:: 可以通过 @ControllerAdvice 注解创建一个全局异常处理类,在这个类中定义多个 @
ExceptionHandler 注解的方法,分别处理不同类型的异常。这样,应用中任何地方抛出的异常都会被相应的处理方法捕获。
Step 4
Q:: 如何返回自定义的异常响应?
A:: 在 @
ExceptionHandler 方法中,可以返回 ResponseEntity 对象,设置自定义的 HTTP 状态码和响应体。也可以返回自定义的对象,Spring 会将其转换为 JSON 格式返回给客户端。
Step 5
Q:: @ExceptionHandler 与 @
ResponseStatus 的区别是什么?
A:: @ExceptionHandler 用于处理控制器方法中的异常,并允许自定义处理逻辑。@ResponseStatus 注解用于标注在异常类上,表示当该异常抛出时,HTTP 响应状态码应设置为什么。@
ExceptionHandler 更加灵活,可以处理多种异常并返回不同的响应。