Sprng MVC异常处理总结
2016-04-16 14:22
483 查看
异常处理
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>
。。。
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>
。。。
相关文章推荐
- 如何优雅地处理前端异常?
- C#异常处理详解
- 轻松学习C#的异常处理
- PHP异常处理Exception类
- JS异常处理的一个想法(sofish)
- PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
- PHP如何抛出异常处理错误
- PHP中的错误处理、异常处理机制分析
- js中的异常处理try...catch使用介绍
- php5编程中的异常处理详细方法介绍
- php异常处理使用示例
- Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
- javascript 异常处理使用总结
- java多线程中的异常处理机制简析
- 深入理解Java编程中异常处理的优劣
- 分享一个php 的异常处理程序
- 简单了解Java编程中对异常处理的运用
- 深入剖析Java中的各种异常处理方式
- JS中的异常处理方法分享
- 一些.NET对多线程异常处理技巧分享