在我们自己的异常上混合@ResponseStatus并在@ControllerAdvice中处理其他异常

时间:2019-10-10 14:28:16

标签: spring-boot spring-mvc exception

我正在阅读有关article的有关Spring MVC和 该博客的“何时使用什么”部分提到

  
      
  • 对于您编写的异常,请考虑向其添加@ResponseStatus。

  •   
  • 对于所有其他异常,在@ControllerAdvice类上实现@ExceptionHandler方法或使用
    的实例   SimpleMappingExceptionResolver。你可能有
      为您的应用程序配置的SimpleMappingExceptionResolver
      已经存在,在这种情况下,添加新的异常类可能会更容易
      而不是实现@ControllerAdvice。

  •   

我们是否有充分的理由不应该将所有处理都放在@controlleradvice中?

谢谢。

1 个答案:

答案 0 :(得分:2)

例如,如果您要为NotFound编写自己的异常-这是不言自明的,则不必为此异常添加任何额外内容,而为其编写处理程序是过大的-您只需添加@ResponseStatus在它上面放置一些信息,例如(值= HttpStatus.NOT_FOUND,原因=“未找到”),如果已修复,请使用此信息。

现在用于需要记录日志或需要对文本进行更多控制的异常-例如国际化您将在处理程序中编写它。

想想他们只是想避免在多余的一行可以处理的地方过度使用处理程序。