Java/Springboot:在一处捕获并处理特定异常?

Gdg*_*ers 1 java spring-boot

是否有可能在整个 Spring Boot 应用程序中捕获特定类型的所有抛出异常(例如 IllegalArgumentException)并在一个地方处理它?我想为应用程序中的特定类型的异常引入一些额外的日志记录,并且我正在寻找一种方法来避免在整个应用程序中重复逻辑或方法调用?

Edu*_*sta 5

看一下注释@ExceptionHandler(value=YourException.class)和 @ControllerAdvice 它允许您处理自定义异常。Controller Advice 类可以全局处理异常。我们可以在此类文件中定义任何异常处理程序方法。

@ControllerAdvice
public class ProductExceptionController {

@ExceptionHandler(value = ProductNotfoundException.class)
public ResponseEntity<Object> exception(ProductNotfoundException   exception) {
  return new ResponseEntity<>("Product not found", HttpStatus.NOT_FOUND);
  }
}
Run Code Online (Sandbox Code Playgroud)