SpringMVC_异常处理
2015-12-04 15:04
309 查看
1 异常处理思路:
系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过补货异常从而获取异常信息,后者主要通过规范代码开发,测试通过手段减少运行时异常的发生系统的dao service controller出现都通过throws Exception向上抛出,最后由springMVC前端控制器交由异常处理器进行异常处理:
2 自定义异常类:
对不同的异常类型定义异常类,继承Exception3 全异常处理器
思路:系统遇到异常,在程序中手动抛出,dao抛给service service抛给controller,controller抛给前端控制器,前端控制器调用全局异常处理器
全局异常处理器处理思路:
解析出异常类型
如果该异常类型是系统自定义的异常 直接取出异常信息 错误页面展示
如果该异常类型不是系统自定义的异常,构造一个自定义的异常类型(信息为“位置错误”)
springMVC提供一个HandlerExceptionresolver接口
@Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { //handler就是处理器适配器要执行Handler对象(只有method) // 解析出异常类型 // 如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示 // String message = null; // if(ex instanceof CustomException){ // message = ((CustomException)ex).getMessage(); // }else{ //// 如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”) // message="未知错误"; // } //上边代码变为 CustomException customException = null; if(ex instanceof CustomException){ customException = (CustomException)ex; }else{ customException = new CustomException("未知错误"); } //错误信息 String message = customException.getMessage(); ModelAndView modelAndView = new ModelAndView(); //将错误信息传到页面 modelAndView.addObject("message", message); //指向错误页面 modelAndView.setViewName("error"); return modelAndView; }
4 springmvc.xml配置全局异常处理器
相关文章推荐
- 菱形 JAVA代码
- JavaEE_Mybatis_SpringMVC_框架整合_lesson1_简单的SSM框架搭建_使用原始Dao开发方式进行测试
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Cacheable
- java 获取本机的IP地址
- Spring Security3 - MVC 整合教程 (初识Spring Security3)
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- JAVA创建一个登录面板的代码
- eclipse中server location为灰色,不能修改
- Java核心类库
- java程序向mysql插入中文变问号
- Eclipse + Idea + Maven + Scala + Spark +sbt
- Java编程思想 之 共享受限资源
- MyEclipse java was started but returned exit code=-1
- JAVA接口,抽象及多态
- Java Web项目调优原则
- java Swing模仿百度搜索功能的实现
- Java基础知识更新前言
- Java 编辑tips
- Eclipse中Outline里各种图标的含义
- Java之美[从菜鸟到高手演变]系列