测试代码,自己测试的,有问题可以留言
@Slf4j
@RestControllerAdvice
public class ExceptionAdvice {
@ResponseBody
@ExceptionHandler(value = Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String validExceptionHandler(Exception e) {
log.error("执行异常",e);
if (e instanceof MethodArgumentNotValidException){
MethodArgumentNotValidException exception= (MethodArgumentNotValidException) e;
//将错误信息返回前台
return exception.getBindingResult().getFieldError().getDefaultMessage();
} else if (e instanceof EmosException) {
EmosException emosException = (EmosException) e;
return emosException.getMsg();
}else if (e instanceof UnauthorizedException){
return "你不具有相关权限";
}else {
return "后端执行异常";
}
}
}
@Data
public class EmosException extends RuntimeException{
private String msg;
private int code=500;
public EmosException(String msg){
super(msg);
this.msg=msg;
}
public EmosException(String msg,Throwable cause){
super(msg);
this.msg=msg;
}
public EmosException(String msg,int code){
super(msg);
this.msg=msg;
this.code=code;
}
public EmosException(String msg,Throwable cause,int code){
super(msg);
this.msg=msg;
this.code=code;
}
}