一、全局异常处理
package com.atguigu.yygh.common.exception; import com.atguigu.yygh.common.result.Result; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public Result error(Exception e){ e.printStackTrace(); return Result.fail(); } @ExceptionHandler(YyghException.class) @ResponseBody public Result error(YyghException e){ e.printStackTrace(); return Result.fail(); } }
二、自定义异常(在全局异常处理中捕获该异常)
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 qy */ @Data @ApiModel(value = "自定义全局异常类") public class YyghException extends RuntimeException { @ApiModelProperty(value = "异常状态码") private Integer code; /** * 通过状态码和错误消息创建异常对象 * @param message * @param code */ public YyghException(String message, Integer code) { super(message); this.code = code; } /** * 接收枚举类型对象 * @param resultCodeEnum */ public YyghException(ResultCodeEnum resultCodeEnum) { super(resultCodeEnum.getMessage()); this.code = resultCodeEnum.getCode(); } @Override public String toString() { return "YyghException{" + "code=" + code + ", message=" + this.getMessage() + '}'; } }