springBoot的全局异常借助于两个注解:@ControllerAdvice,@ExceptionHandler注解
@ControllerAdvice作用在类上
@ExceptionHandler作用在方法上,这个注解有属性value,可以设置为特定的某类异常。
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = ParamsException.class)
@ResponseBody
public ResultInfo resolverParamsException(Exception ex) {
ResultInfo resultInfo = new ResultInfo();
ParamsException pe = (ParamsException) ex;
resultInfo.setCode(pe.getCode());
resultInfo.setMsg(pe.getMsg());
return resultInfo;
}
@ExceptionHandler
@ResponseBody
public ResultInfo resolverException(Exception ex) {
ResultInfo resultInfo = new ResultInfo();
resultInfo.setCode(300);
resultInfo.setMsg("操作失败");
return resultInfo;
}
}
这样,在其他地方就不用try catch了。