如何在Spring Boot中实现全局异常处理

Spring Boot提供了@ControllerAdvice和@ExceptionHandler注解,用于实现全局异常处理。
创建全局异常处理器类
使用@ControllerAdvice注解定义一个全局异常处理器类。
java
复制
@ControllerAdvice
public class GlobalExceptionHandler {
// 处理自定义异常
@ExceptionHandler(CustomException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity handleCustomException(CustomException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}

// 处理其他所有异常
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseEntity<String> handleException(Exception e) {
    return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error: " + e.getMessage());
}

}
定义自定义异常类
如果需要处理特定的异常,可以定义自定义异常类。
java
复制
public class CustomException extends RuntimeException {
public CustomException(String message) {
super(message);
}
}
抛出自定义异常
在代码中抛出自定义异常,全局异常处理器会捕获并处理。
java
复制
@GetMapping("/test")
public String test() {
throw new CustomException("This is a custom exception");
}

posted @ 2025-02-16 15:24  软工李文轩  阅读(167)  评论(0)    收藏  举报