创建自定义异常类
package com.atguigu.spzx.common.exception;
import com.atguigu.spzx.model.vo.common.ResultCodeEnum;
import lombok.Data;
@Data // 生成get/set方法
public class GuiguException extends RuntimeException {
private Integer code ;
private String message;
private ResultCodeEnum resultCodeEnum;
public GuiguException(ResultCodeEnum resultCodeEnum) {
this.resultCodeEnum = resultCodeEnum;
this.code = resultCodeEnum.getCode();
this.message = resultCodeEnum.getMessage();
}
}
2.创建自定义异常类处理方法
package com.atguigu.spzx.common.exception;
import com.atguigu.spzx.model.vo.common.Result;
import com.atguigu.spzx.model.vo.common.ResultCodeEnum;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class GlobalExceptionHandler {
//全局异常处理
@ExceptionHandler(Exception.class)
@ResponseBody //处理返回的数据格式为json
public Result error(){
return Result.build(null, ResultCodeEnum.SYSTEM_ERROR);
}
//自定义异常处理
@ExceptionHandler(GuiguException.class)//此处传入自定义异常类的class,表示针对这种异常做处理
@ResponseBody
public Result error(GuiguException e){
return Result.build(e, e.getResultCodeEnum());
}
}
3.使用