系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。
自定义异常类:
//自定义异常类
@RequestMapping("/list4")
public String list3(Model m){
if(true)
throw new RuntimeException("有错误!!!");
return "list1";
}
自定义异常处理器:
//自定义异常处理器
@Component
public class MyExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object asource, Exception e) {
// TODO Auto-generated method stub
ModelAndView mvc = new ModelAndView();
if(e instanceof RuntimeException){
mvc.setViewName("error"); //显示到jsp页面上
mvc.addObject("ERROR",e); //键值对
}else{
}
return mvc;
}
}
当没有异常处理器时,只会执行RuntimeException("有错误!!!");报出异常。
当有异常处理器时,遇到RuntimeException("有错误!!!");就会交给Spring框架的异常处理器来处理,所以异常处理器里的代码也会执行。所以可以将异常处理写到页面上。
以前异常处理需要在配置文件里进行配置。现在不用在配置文件里配置了。直接写好异常类和异常处理器就可以了运行了。