1 异常处理思路
Controller 调用 service,service 调用 dao,异常都是向上抛出的,最终由 Dispatcher
Servlet 找出异常处理器进行异常的处理。
2 SpringMVC 的异常处理
正常的处理流程:
浏览器 –> 前端控制器 –> web –> service –> dao
发生异常后:
dao –> service –> web –> 前端控制器 –> 异常处理器 –> 浏览器
- 编写自定义异常类(做提示信息的)
- 编写异常处理类
- 配置异常处理类(跳转到提示)
自定义异常类 SysException.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public class SysException extends Exception{ private String message;
@Override public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
public SysException(String message) { this.message = message; } }
|
编写异常处理类 SysExceptionResolver.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { SysException e = null; if(ex instanceof SysException){ e = (SysException)ex; }else{ e = new SysException("系统正在维护..."); } ModelAndView mv = new ModelAndView(); mv.addObject("errorMsg",e.getMessage()); mv.setViewName("error");
return mv; } }
|
在 SpringMVC.xml 中配置:
1 2
| <bean id="sysExceptionResolver" class="cn.Retur0.SysExceptionResolver"/>
|