开发中,代码里一般不处理运行时RuntimeException异常,这些一般程序员自己逻辑上防止出现。但是最外层还是要接受所有异常类型并处理的。
针对项目提供一个统一的异常处理,显得必不可少,而springmvc似乎显得很容易。直接上例子:
1、定义异常类型:
public class MyException extends Exception{
private static final long serialVersionUID = 6726968191605259087L;
private int errorType;
private String msg;
public MyException(int errorType, String msg) {
this.errorType= errorType;
this.msg = msg;
}
}
2、定义处理异常类:
@Component
@ControllerAdvice
public class ExceptionHandler {
@org.springframework.web.bind.annotation.ExceptionHandler(MyException.class)
public ModelAndView handleSystemException(MyException e){
ModelAndView model = new ModelAndView("error/error");
model.addObject("errorCode", e.getCode());
model.addObject("errorMsg", e.getMsg());
return model;
}
}
3、在业务代码出错时,直接抛出异常即可。