SpringBoot全局异常报错处理和信息返回

信息返回类

这种设计可以统一API返回格式,便于前端处理,也便于日志记录和错误排查

java 复制代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> 
{
	Integer code;
	String mes;
	T data;
	
	public static Result success()
	{
		return new Result(200,"成功",null);
	}

	public static Result error()
	{
		return new Result(500,"服务器出现未知错误",null);
	}

	public static Result error(String mes)
	{
		return new Result(500,mes,null);
	}
}

全局异常处理

全局异常处理可以统一管理异常,避免在每个 Controller 中重复处理异常

自定义异常类

java 复制代码
public class MyCustomException extends Exception 
{
	//构造方法
	public MyCustomException(String message) {
		super(message);
	}
}

全局异常处理类

java 复制代码
@ControllerAdvice
public class GlobalExceptionHandler
{
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result handleException(Exception e)
    {
        //处理自定义异常信息
        if(e instanceof MyCustomException)
        {
            //将自定义异常进行转换
            MyCustomException myCustomException = (MyCustomException)e;
            return Result.error(myCustomException.getMessage());
        }
        //所有异常处理
        return Result.error(e.getMessage());
    }
}

控制层

java 复制代码
@RestController
@RequestMapping("demo")
public class DemoController 
{
	@GetMapping("getMyCustomException")
	public String getMyCustomException() throws Exception 
	{
		throw new MyCustomException("自定义报错信息");
	}
	
	@GetMapping("getException")
	public String getException() throws Exception
	{
		throw new Exception();	
	}
}

测试结果


相关推荐
用户1563068103511 小时前
Day01 | Java 基础(Java SE)
java
飘尘1 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
浏览器工程师3 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
行者全栈架构师3 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
Chenyiax3 小时前
从一次请求看懂 OkHttp:架构、调度与连接管理
后端
爱勇宝3 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
AskHarries4 小时前
工具失败时怎么办:重试、回滚、人工确认和风险提示
后端·程序员
苏三说技术5 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
长栎6 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode6 小时前
Redis 在生产项目的使用
前端·后端