统一异常处理
新建exception包
包下新建GlobalExceptionHandler类
package com.atguigu.yygh.common.exception; import com.atguigu.yygh.common.result.Result; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @RestControllerAdvice public class GlobalExceptionHandler { //全局异常处理 @ExceptionHandler(Exception.class) public Result error(Exception e){ e.printStackTrace(); return Result.fail("系统出现异常啦"); } //自定义异常处理 @ExceptionHandler(MyException.class) public Result error(MyException e){ e.printStackTrace(); return Result.fail(e.getMessage()); } }
包下新建MyException自定义异常类
package com.atguigu.yygh.common.exception; import com.atguigu.yygh.common.result.ResultCodeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 自定义全局异常类 * * @author */ @Data @ApiModel(value = "自定义全局异常类") public class MyException extends RuntimeException { @ApiModelProperty(value = "异常状态码") private Integer code; /** * 通过状态码和错误消息创建异常对象 * @param message * @param code */ public MyException(String message, Integer code) { super(message); this.code = code; } /** * 接收枚举类型对象 * @param resultCodeEnum */ public MyException(ResultCodeEnum resultCodeEnum) { super(resultCodeEnum.getMessage()); this.code = resultCodeEnum.getCode(); } @Override public String toString() { return "MyException{" + "code=" + code + ", message=" + this.getMessage() + '}'; } }
测试代码
try { int i = 1/0; } catch (Exception e) { throw new MyException("这里计算出错了,",201); }
返回数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律