天天看点

Sprng MVC异常处理总结

异常处理 Spring MVC提供了两种方法来实现异常处理

1)集成HandlerExceptionResolver接口,实现自己处理异常的方法,如:

public class MyHandlerExceptionResolver implements HandlerExceptionResolver {     

    @Override  

    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {   

// TODO Auto-generated method stub   

        return new ModelAndView("exception");   

    }   

}

然后将这个配置到配置文件中:

<bean id="exceptionResolver" class="所在包名.MyHandlerExceptionResolver"/>

OK,这样就可以了

2)可以借助注解@Exception来实现零配置的异常捕捉和处理

首先,建立一个父类Controller

public abstract class BaseController {  

    @ExceptionHandler

    public String exception(HttpServletRequest request, Exception e) {            

      //添加自己的异常处理逻辑,如日志记录   

        request.setAttribute("exceptionMessage", e.getMessage());            

        // 根据不同的异常类型进行不同处理

        if(e instanceof SQLException) 

            return "testerror";   

        else

            return "error";  

    }      

}

修改之前写过的HelloWorldController,让他继承BaseController

@Controller

@RequestMapping(value="/exception")

public class HelloWorldController extends BaseController{

    @RequestMapping(value="/hello")

public ModelAndView hello() throws SQLException{

// TODO Auto-generated method stub

    throw new SQLException("数据库异常");

}

}

写一个视图来显示信息

。。。

<body>

    ${exceptionMessage}

</body>

。。。

继续阅读