在分层应用程序中,我必须使用Spring Annotation @ResponseStatus定义异常的HTTP代码。
例如:
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Illegal argument")
public class IllegalContentException{
}
它有效,但我想知道在尝试避免破坏单一责任模式时这是不是一种坏习惯(在这种方法中,异常知道HTTP代码)。
问题是:
答案 0 :(得分:2)
如果您不想将响应代码放在每个例外中,一个选项是创建一个集中式异常处理程序,其中@ControllerAdvice
类由@ExceptionHandler
和{{1}的方法组成注释。
@ResponseStatus
答案 1 :(得分:0)
我相信答案可以在https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc开头找到。
从提供的网站复制并粘贴: “目标是尽可能不在Controller方法中明确处理异常。它们是一个跨领域的问题,可以在专用代码中单独处理。
有三种选择:每个例外,每个控制器或全局。“