springMVC Spring MVC 异常处理
2015-08-28 11:16
519 查看
Spring MVC处理异常有3种方式:
(1)使用@ExceptionHandler注解实现异常处理;
(2)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver;
(3)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器;
?
然而,Dao层、Service层、Controller层抛出的异常(BusinessException、SystemException和其它异常)都能准确显示定义的异常处理页面,达到了统一异常处理的目标。
总结:使用@ExceptionHandler注解实现异常处理,具有集成简单、有扩展性好(只需要将要异常处理的Controller类继承于BasicExController即可)、不需要附加Spring配置等优点,但该方法对已有代码存在入侵性(需要修改已有代码,使继承于BasicExController),在异常处理时不能获取除异常以外的数据。
?
?
java类代码如下,在这里可以处理相应逻辑,如下,分别处理了jsp页面和json数据:
?
总结:使用SimpleMappingExceptionResolver进行异常处理,具有集成简单、有良好的扩展性、对已有代码没有入侵性等优点,但方法1仅能获取到异常信息,若在出现异常时,对需要获取除异常以外的数据的情况不适用。
?
总结:从上面的集成过程可知,使用实现HandlerExceptionResolver接口的异常处理器进行异常处理,具有集成简单、有良好的扩展性、对已有代码没有入侵性等优点。在异常处理时能获取导致出现异常的对象,有利于提供更详细的异常处理信息。而SimpleMappingExceptionResolver就是HandlerExceptionResolver的默认实现类
(1)使用@ExceptionHandler注解实现异常处理;
(2)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver;
(3)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器;
一、使用@ExceptionHandler进行处理
1.创建异常基类,使用[b]@ExceptionHandler声明异常处理[/b]
BusinessException和SystemException为自定义异常类,代码如下:?
2、使所有需要异常处理的Controller都继承该类,如下所示:
?总结:使用@ExceptionHandler注解实现异常处理,具有集成简单、有扩展性好(只需要将要异常处理的Controller类继承于BasicExController即可)、不需要附加Spring配置等优点,但该方法对已有代码存在入侵性(需要修改已有代码,使继承于BasicExController),在异常处理时不能获取除异常以外的数据。
二、SimpleMappingExceptionResolver[b]简单异常处理器[/b]
SimpleMappingExceptionResolver有两种配置方式,可以按自己需求而定,配置代码如下:1、第一种,在Spring的配置文件中,增加以下内容:
在这里,可以设置跳转相应页面。?
2、第二种,通过自定义java类,继承SimpleMappingExceptionResolver
然后在Spring的配置。代码如下:?
?
三、HandlerExceptionResolver自定义异常
1.[b][b]在Spring的配置文件中,增加以下内容:[/b][/b]
?2.[b][b]添加自定义的MyExceptionHandler类,代码如下:[/b][/b]
在这里,单独打印出了异常路径,便于在日志中查看,在对SystemException异常进行了特殊处理:?
相关文章推荐
- Struts2中的配置问题
- Spring4新特性:泛型限定式依赖注入
- Jdk用native2ascii命令做unicode编码转换
- Could not initialize JavaVM
- java基础-IO-字符流、字节流
- springmvc常用注解以及参数传递
- spring mvc json乱码问题
- myeclipse开发jar包not find总结(更新中)
- java+Struts2生成验证码
- 转 Java内存管理原理及内存区域详解
- JAVA非空条件三元运算符
- eclipse配置jetty运行环境二
- [leetcode-213]House Robber II(java)
- 修改Struts2的struts.xml配置文件位置
- JAVA float double数据类型保留2位小数点5种方法
- Quartz核心类
- Java基础知识强化03:Java中的堆与栈
- java基础之 多线程
- eclipse中配置jetty环境一
- Java中File常用用法总结