gpt4 book ai didi

java - Java异常中的HTTP代码

转载 作者:行者123 更新时间:2023-12-01 21:22:33 25 4
gpt4 key购买 nike

在分层应用程序中,我必须使用 Spring Annotation @ResponseStatus 定义异常的 HTTP 代码。

例如:

@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Illegal argument")
public class IllegalContentException{


}

它有效,但我想知道在尝试避免破坏单一责任模式时这是否是一个不好的做法(在这种方法中,异常了解 HTTP 代码)。

问题是:

  • 是否应该在异常中定义 HTTP 代码而不考虑它们所属的层? HTTP 代码是否应该在属于 DAO、服务层和/或 Controller 的异常中定义?

最佳答案

如果您不想将响应代码放入每个异常中,一种选择是使用 @ControllerAdvice 类创建一个集中式异常处理程序,该类由带有 @ExceptionHandler 的方法组成。 code> 和 @ResponseStatus 注释。

@ControllerAdvice
public class CentralizedExceptionHandler {

@ExceptionHandler(IllegalContentException.class)
@ResponseBody
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleError(IllegalContentException e) {
return "Illegal argument";
}
}

关于java - Java异常中的HTTP代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38912925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com