首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

使用springMVC进行统一的错误处理

2012-10-12 
使用springMVC进行统一的异常处理无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序

使用springMVC进行统一的异常处理

无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了。跟其他MVC框架一样,springMVC也有自己的异常处理机制。
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 {@Overridepublic ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex) {// TODO Auto-generated method stubreturn new ModelAndView("exception");}}

?上述的resolveException的第4个参数表示对哪种类型的异常进行处理,如果想同时对多种异常进行处理,可以把它换成一个异常数组。

定义了这样一个异常处理器之后就要在applicationContext中定义这样一个bean对象,如:

<bean id="exceptionResolver" name="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;@Controllerpublic 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又拥有一个处理该异常的方法,这个时候处理异常的方法就会被调用

?

?

?

当发生异常的时候,上述两种方式都使用了的时候,第一种方式会将第二种方式覆盖

?

?

?

热点排行