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();	
	}
}

测试结果


相关推荐
大大杰哥2 分钟前
Java 日志框架详解:SLF4J + Logback 从入门到实战
java·开发语言·logback
神奇小汤圆5 分钟前
Kafka性能调优:从10万到100万条/秒的实战经验
后端
Dest1ny-安全16 分钟前
2026最新CTF知识库:12大Web漏洞深度文章+1156篇历年大赛WP+50+脚本+Payload速查 +AI/RAG离线在线知识库
java·学习·安全·web安全·servlet
Gopher_HBo16 分钟前
接入层LVS
后端
404号扳手16 分钟前
Java 基础知识(六)
java·后端
前端市界25 分钟前
LotDB Vue 阿里云 ECS 部署实战记录
后端
卷无止境26 分钟前
SimPy 进程通信:让仿真世界里的"对话"变得优雅
后端
ZengLiangYi26 分钟前
多格式文件解析:JSONL / SQLite / Event Stream
前端·javascript·后端
前端市界27 分钟前
使用 `acme.sh` + 阿里云 DNS API 申请 Let’s Encrypt 通配符证书,并配置 Nginx 自动续期
后端
卷无止境30 分钟前
SimPy Events 深度解析:仿真世界的时间引擎
后端