springboot统一异常处理

在 Spring Boot 中,可以通过自定义异常处理器来实现统一的异常处理。

  1. 创建自定义异常类

首先,创建一个自定义的异常类,继承自 RuntimeException 或其子类。这个异常类可以用来表示应用程序中的特定异常情况。

public class CustomException extends RuntimeException {
    public CustomException(String message) {
        super(message);
    }
}
  1. 创建全局异常处理器

然后,创建一个全局异常处理器,用于处理应用程序中发生的异常。可以使用 @ControllerAdvice 注解来标记这个类,并使用 @ExceptionHandler 注解来定义异常处理方法。

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(CustomException.class)
    public ResponseEntity<String> handleCustomException(CustomException ex) {
        // 自定义异常的处理逻辑
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception ex) {
        // 通用异常的处理逻辑
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
    }
}

handleCustomException() 方法用于处理自定义异常 CustomException,并返回一个带有适当状态码和错误消息的 ResponseEntity 对象。handleException() 方法用于处理其他未处理的异常,返回一个带有 500 错误状态码和错误消息的 ResponseEntity 对象。

  1. 配置异常处理器

最后,在 Spring Boot 应用程序的配置类中,需要将全局异常处理器注册为一个 Bean。

@Configuration
public class AppConfig {

    @Bean
    public GlobalExceptionHandler globalExceptionHandler() {
        return new GlobalExceptionHandler();
    }
}

通过将全局异常处理器注册为一个 Bean,Spring Boot 将自动应用该处理器来处理应用程序中发生的异常。

当应用程序中抛出 CustomException 或其他未处理的异常时,全局异常处理器将捕获并处理它们,返回适当的错误响应。

你可能感兴趣的:(spring,boot)