如何在Spring Boot中实现全局异常处理
Spring Boot提供了@ControllerAdvice和@ExceptionHandler注解,用于实现全局异常处理。
创建全局异常处理器类
使用@ControllerAdvice注解定义一个全局异常处理器类。
java
复制
@ControllerAdvice
public class GlobalExceptionHandler {
// 处理自定义异常
@ExceptionHandler(CustomException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity
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");
}
浙公网安备 33010602011771号