通过@ControllerAdvice和自定义异常类实现统一异常处理,先定义Result类封装返回格式,再创建GlobalExceptionHandler捕获BusinessException、NullPointerException等异常并转换为标准Result响应,结合@RestControllerAdvice确保接口返回格式一致,提升API健壮性。

在Spring项目中,为了保证接口返回的异常信息统一、清晰,通常需要对异常进行全局处理。通过 @ControllerAdvice 和 @ExceptionHandler 可以实现统一异常响应格式。
先创建一个通用的响应体类,用于封装成功和异常时的返回数据:
public class Result创建一个全局异常处理器,捕获项目中抛出的异常,并转换为统一格式返回:
@ControllerAdvice public class GlobalExceptionHandler { // 处理自定义业务异常 @ExceptionHandler(BusinessException.class) @ResponseBody public Result为了更灵活地控制业务异常,可以定义自己的异常类:
立即学习“Java免费学习笔记(深入)”;
public class BusinessException extends RuntimeException { private int code; public BusinessException(int code, String message) { super(message); this.code = code; } public int getCode() { return code; } }在业务代码中直接抛出:
if (user == null) { throw new BusinessException(404, "用户不存在"); }确保控制器返回类型统一为 Result<T>,避免部分接口格式不一致。
对于REST API,推荐使用 @RestControllerAdvice 替代 @ControllerAdvice,自动加上@ResponseBody。
生产环境建议记录异常日志,便于排查问题。
以上就是Java中如何在Spring项目中统一异常返回格式的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号