springmvc 异常处理器
2015-07-13 20:30
477 查看
本文是参照使用springMVC进行统一的异常处理
- 简介
- 实现接口接口:HandlerExceptionResolver
- 3、使用@ExceptionHandler进行处理
1、简介
springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的ExceptionHandler。
2、实现接口接口:HandlerExceptionResolver
实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接口,springMVC本身已经对其有了一个自身的实现
上述的resolveException的第4个参数表示对哪种类型的异常进行处理,如果想同时对多种异常进行处理,可以把它换成一个异常数组。
定义了这样一个异常处理器之后就要在spring-beans.xml中定义这样一个bean对象,如:
3、使用@ExceptionHandler进行处理
使用@ExceptionHandler进行处理有一个不好的地方是进行异常处理的方法必须与出错的方法在同一个Controller里面
如:
这里在页面上访问test方法的时候就会报错,而拥有该test方法的Controller又拥有一个处理该异常的方法,这个时候处理异常的方法就会被调用。
当发生异常的时候,上述两种方式都使用了的时候,第一种方式会将第二种方式覆盖。
- 简介
- 实现接口接口:HandlerExceptionResolver
- 3、使用@ExceptionHandler进行处理
1、简介
springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的ExceptionHandler。
2、实现接口接口:HandlerExceptionResolver
实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接口,springMVC本身已经对其有了一个自身的实现
[code]public class ExceptionResolver implements HandlerExceptionResolver { /** * 处理异常 */ @Override public ModelAndView resolveException(HttpServletRequest req,HttpServletResponse resp, Object obj, Exception exception) { return new ModelAndView(ConstantUtil.ERRORURL); //return null; } }
上述的resolveException的第4个参数表示对哪种类型的异常进行处理,如果想同时对多种异常进行处理,可以把它换成一个异常数组。
定义了这样一个异常处理器之后就要在spring-beans.xml中定义这样一个bean对象,如:
[code]<bean id="exceptionResolver" class="cn.tm.common.event.listener.ExceptionResolver"/>
3、使用@ExceptionHandler进行处理
使用@ExceptionHandler进行处理有一个不好的地方是进行异常处理的方法必须与出错的方法在同一个Controller里面
如:
[code]import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; import com.tiantian.blog.web.servlet.MyException; @Controller public class GlobalController { /** * 用于处理异常的 * @return */ @ExceptionHandler({MyException.class}) public String exception(MyException e) { System.out.println(e.getMessage()); e.printStackTrace(); return "exception"; } @RequestMapping("test") public void test() { throw new MyException("出错了!"); } }
这里在页面上访问test方法的时候就会报错,而拥有该test方法的Controller又拥有一个处理该异常的方法,这个时候处理异常的方法就会被调用。
当发生异常的时候,上述两种方式都使用了的时候,第一种方式会将第二种方式覆盖。
相关文章推荐
- java.lang.OutOfMemoryError: PermGen space
- Java获取随机数验证码,例454670(短信验证码,邮箱验证码)
- java io流管道流
- Java集合系列之HashSet源码分析
- CXF WebService整合Spring
- javaWeb
- HDU 1502 Regular Words(DP + JAVA)
- Java连接MQ的实例
- springmvc拦截器使用
- 通过JAVA从MQ读取消息的时候报错及解决
- 与MQ通讯的完整JAVA程序
- wsdl2java在mac中点配置
- 关于Eclipse的SVN插件(Subclipse)历史版本乱码的问题
- eclipse中出现"确认切换透视图“的原因
- Java继承关系与接口
- Java集合之HashSet源码分析
- Java调用MQ队列
- java io
- websphere MQ 编程指南(Java)
- java中Date的getTime()函数