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

测试结果


相关推荐
疯狂的程序猴4 分钟前
Fiddler抓包配置与使用教程,HTTPHTTPS抓包、代理设置与接口调试完整指南
后端
豆奶特浓64 分钟前
Java面试模拟:当搞笑程序员谢飞机遇到电商秒杀与AIGC客服场景
java·spring boot·微服务·面试·aigc·高并发·电商
明洞日记6 分钟前
【设计模式手册013】命令模式 - 请求封装的优雅之道
java·设计模式·命令模式
方白羽14 分钟前
Android多层嵌套RecyclerView滚动
android·java·kotlin
每天进步一点_JL22 分钟前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端
bcbnb30 分钟前
Ipa Guard 集成到 CICD 流程,让 iOS 加固进入自动化时代的完整工程方案
后端
该用户已不存在40 分钟前
2025 年 8 款最佳远程协作工具
前端·后端·远程工作
uup1 小时前
Java 中 ArrayList 线程安全问题
java
uup1 小时前
Java 中日期格式化的潜在问题
java
云渠道商yunshuguoji1 小时前
阿里云渠道商:阿里云服务器出问题如何处理?
后端