1. 异常处理思路
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理。
2. 自定义异常处理器
class ExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler, Exception ex) {
//创建ModelAndView
ModelAndView md = new ModelAndView();
//指定友好的错误提示页面
md.setViewName("error");
//创建StringWriter
StringWriter stringWriter = new StringWriter();
//将错误信息输入进Stringwriter对象中
ex.printStackTrace(new PrintWriter(stringWriter));
//输出错误
System.out.println(stringWriter.toString());
return md;
}
}
3. 配置异常处理器
在Spring.xml中配置异常处理器
<!--异常处理-->
<bean class="com.itheima.controller.ExceptionHandler"></bean>