package video.exception;
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;
import video.dto.JsonData;
-----------------------------异常处理类--------------------------------------------
/**
* 全局自定义异常处理类
*/
@ControllerAdvice//所有异常都会被捕获
public class GlobalExceptionHandler {
/**
* 处理异常
* @return
*/
@ExceptionHandler(value = Exception.class)
@ResponseBody
public JsonData handlerException(Exception e) {
if (e instanceof BussinessException) {
return JsonData.error(e.getMessage(),((BussinessException) e).getCode());
} else if (e instanceof GlobalException ) {
return JsonData.error(e.getMessage(),((GlobalException) e).getCode());
} else {
return JsonData.error("未知异常");
}
}
}
-----------------------------自定义异常类------------------------------------------
/**
* 全局自定义异常类
*/
public class GlobalException extends RuntimeException {
/**状态码*/
private Integer code;
/**消息提示*/
private String msg;
public GlobalException(Integer code, String msg) {
super(msg);
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
/**
* 自定义业务异常类
*/
public class BussinessException extends RuntimeException {
private String msg;
private Integer code;
public BussinessException(Integer code, String msg) {
super(msg);
this.msg = msg;
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
}