- 异常处理
- 注解实现异常处理
- 项目异常处理方案
通用异常处理方案
程序异常现象
@RequestMapping("/save")
@ResponseBody
public List<User> save(@RequestBody User user){
...
//模拟调用业务层接口,抛出异常
int i = 1/0;
...
}
异常处理
HandlerExceptionResolver接口(异常处理器)
@Component
public class ExceptionResolver implements HandlerException(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex){
System.out.println("异常处理器正在执行中");
ModelAndView modelAndView = new ModelAndView();
//定义异常现象出现后,反馈给用户查看的信息
modelAndView.addObject("msg","出错啦!");
modelAndView.setViewName("error.jsp");
return modelAndView;
}
}
异常分类管理
- 根据异常的种类不同,进行分门别类的管理,返回不同的信息
HandlerException(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex){
System.out.println("异常处理器正在执行中");
ModelAndView modelAndView = new ModelAndView();
if(ex instanceof NullPointerException){
modelAndView.addObject("msg","出问题啦-_-!,空对象异常");
}else if (ex instanceof ArithmeticException){
modelAndView.addObject("msg","出问题啦-_-!,算术运算异常");
}
modelAndView.setViewName("error.jsp");
return modelAndView;
}
}
- 异常处理器HandlerExceptionResolver