- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有大约 20 到 30 种不同类型的不同异常,所有异常都扩展了 Java 中的 Exception 类。一个例子是:
public class NoHandlerFoundException extends Exception {
private static final long serialVersionUID = -9079454849611061074L;
public NoHandlerFoundException() {
super();
}
public NoHandlerFoundException(final String message) {
super(message);
}
}
其他示例是:
public class ResourceNotFoundException extends Exception{
private static final long serialVersionUID = -9079454849611061074L;
public ResourceNotFoundException() {
super();
}
public ResourceNotFoundException(final String message) {
super(message);
}
}
还有更多。正如你所看到的,大部分代码都是重复的,然后我使用 ControllerAdvice 之类的(我知道 ControllerAdvice 参数异常类中的代码应该是正确的):
@ExceptionHandler({NoHandlerFoundException.class, ResourceNotFoundException.class})
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public @ResponseBody ExceptionResponse handleResourceNotFound(final NoHandlerFoundException exception,
final HttpServletRequest request) {
ExceptionResponse error = new ExceptionResponse();
error.setErrorMessage(exception.getMessage());
error.callerURL(request.getRequestURI());
return error;
}
所以我想知道我们是否有任何方法可以优化上述异常,而不是编写单个类多次执行几乎相同的工作,但仍然想区分它们。谢谢。
最佳答案
您可以使用以下方法来减少代码冗余。
@ExceptionHandler(value = {NoHandlerFoundException.class, ResourceNotFoundException.class})
protected ResponseEntity handleInvalidDataException(RuntimeException exception, WebRequest request) {
ExceptionResponse error = new ExceptionResponse();
error.setErrorMessage(exception.getMessage());
error.callerURL(request.getRequestURI());
return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);
}
关于java - 优化 Spring RestControllerAdvice 多个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57186095/
我有多个子项目的父项目。所有项目都以 basepakage org.dordas.{project name}.web.controller 开头。我想用一个基础包配置 controllerAdvic
@RestControllerAdvice 和 @ControllerAdvice 之间的主要区别是什么? 我们是否应该始终将 @RestControllerAdvice 用于休息服务和 @Contr
我正在使用 Spring Boot 2.3.1,但遇到异常问题。我想使用 @RestControllerAdvice 类在全局级别捕获异常。我能够捕获验证错误并返回自定义错误响应,但 Spring 似
我有一个 Spring MVC 应用程序,它有 @Controller s 和 @RestController s。 我在想:当我的 @Controller 出现异常时, 由我处理 @Controll
我有大约 20 到 30 种不同类型的不同异常,所有异常都扩展了 Java 中的 Exception 类。一个例子是: public class NoHandlerFoundException ext
我正在使用 Spring Boot 创建几个 REST API,并正在考虑解耦异常处理并将其作为外部 jar 文件,然后我可以将其导入到我的项目中并拥有一个全局异常处理程序逻辑。我为此创建了一个新项目
我有以下 Controller : @RestController @RequestMapping("/api/{brand}" public class CarController { @Get
自定义枚举 validator 注释接口(interface): @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TY
有一个非常相似的问题here ,但答案不足以解决我的问题。 我在 @Service 类中有这个方法: @Async public void activateUser(...){ if(someCo
我目前正在抛出自定义异常 - RequestValidationException。 ExceptionHandler 类: @RestControllerAdvice @Slf4j public c
在 Spring Webflux 异常处理的首选方式是什么? @RestControllerAdvice 来自 Spring MVC 而 DefaultErrorAttributes 来自 Sprin
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(NoHandlerFound
我是一名优秀的程序员,十分优秀!