如何在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");
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix