Saf*_*ari 3 java spring spring-boot
我正在使用Spring Boot,并且在整个业务逻辑代码中都使用了异常类。一个可能看起来像这样:
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class ExternalDependencyException extends RuntimeException {
public ExternalDependencyException() {
super("External Dependency Failed");
}
public ExternalDependencyException(String message) {
super(message);
}
}
Run Code Online (Sandbox Code Playgroud)
好了,现在出现了Exception,没有适合的预定义Http Status代码,因此我想使用状态代码,例如460或类似的代码,它仍然是免费的,但是注释ResponseStatus只接受enum的值HttpStatus。有没有办法在Java Spring Boot环境中使用自定义状态代码来实现Exception类?
我不知道使用@ResponseStatus的方法。
解决此问题的一种方法是使用@RestControllerAdvice。这将允许您自定义返回异常的方式。
@RestControllerAdvice
public class WebRestControllerAdvice {
@ExceptionHandler(ExternalDependencyException.class)
public String handleGitlabException(ExternalDependencyException ex, HttpServletResponse response) {
try {
response.sendError(460);
} catch (Exception e) {
e.printStackTrace();
}
return ex.getMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |