Java/Springboot : Catch and handle a particular exception in one place?

标签 java spring-boot

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

最佳答案

看一下注释@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);
  }
}

关于Java/Springboot : Catch and handle a particular exception in one place?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60032119/

相关文章:

spring - 用于 Spring 项目中生产代码的 RestTemplate vs Apache Http Client

java - Spring引导,XML在POM.xml上有 "Unknown"错误

java - 使用参数列表中给定的参数调用函数

java - 如何使用 SpringExtension 让我的测试与 JUnit5 一起工作?

java - 在 Spring 框架中使用 registerShutdownHook()

Java 交互式 CLI 选项提示

java - 从 Spring Cloud Config Server 获取配置时 Spring 配置文件排序不正确

java - 如何在 Spring-Boot CrudRepository 中获取数组中具有值的对象列表

java - arraylist 的副本不断被修改为原始值

java - 如何根据我输入的字符进行 if else 操作