springmvc异常统一处理方式.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
springmvc异常统一处理方式

/xd502djj/archive/2012/09/24/2700490.htmlspring mvc 异常统一处理方式springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller——ExceptionHandler。?1、实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接口,springMVC本身已经对其有了一个自身的实现——DefaultExceptionResolver,该解析器只是对其中的一些比较典型的异常进行了拦截处理。?import?javax.servlet.http.HttpServletRequest;import?javax.servlet.http.HttpServletResponse;?import?org.springframework.web.servlet.HandlerExceptionResolver;import?org.springframework.web.servlet.ModelAndView;?public?class?ExceptionHandler?implements?HandlerExceptionResolver?{??@Override??public?ModelAndView?resolveException(HttpServletRequest?request,?HttpServletResponse?response,?Object?handler,?Exception?ex)?{?//?TODO?Auto-generated?method?stub???return?new?ModelAndView(exception);?}?}????上述的resolveException的第4个参数表示对哪种类型的异常进行处理,如果想同时对多种异常进行处理,可以把它换成一个异常数组。定义了这样一个异常处理器之后就要在applicationContext中定义这样一个bean对象,如:bean?id=exceptionResolver?class=com.tiantian.xxx.web.handler.ExceptionHandler/??2、使用@ExceptionHandler进行处理使用@ExceptionHandler进行处理有一个不好的地方是进行异常处理的方法必须与出错的方法在同一个Controller里面如: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又拥有一个处理该异常的方法,这个时候处理异常的方法就会被调用?当发生异常的时候,上述两种方式都使用了的时候,第一种方式会将第二种方式覆盖?/blog/1297746/blog/1297746??最近使用spring mvc开发一个web系统,发现在controller里发生未捕获异常时不出日志。?分析DispatcherServlet,初始化handlerExceptionResolvers?/**???*?Initialize?the?strategy?objects?that?this?servlet?uses.???*?pMay?be?overridden?in?subclasses?in?order?to?in

您可能关注的文档

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档