springMVC异常处理

系统中的异常一般分为运行时异常和预期异常,在springMVC中,DAO,Controller,Service层出现的异常,全部都向上层抛出,最后由springMVC的前端控制器DispatcherServlet统一交由全局处理器进行异常处理。

主要实现的功能有下:

1.解析异常类型,判断异常属于那种异常

2.如果该异常类型是系统自定义异常,直接取出异常信息,显示在错误页面上,如果不是,则自定义一个异常类

3.构建异常信息展示视图,将异常信息绑定到model中,然后跳转到相关的异常显示页面

以user登录为例

1.自定义一个user登录异常类,创建一个名为UserException的类,继承Exception类

   

private String message;

public UserException(String message) {
// TODO Auto-generated constructor stub
super(message);
this.message=message;
}

public UserException() {
// TODO Auto-generated constructor stub
}

public String getMessage() {
return message;
}

扫描二维码关注公众号,回复: 61063 查看本文章

public void setMessage(String message) {
this.message = message;
}

2.新建一个名为UserExceptionResolve的类,实现HandlerExceptionResolver接口

@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object obj, Exception exception) {
// TODO Auto-generated method stub
System.out.println("出现异常");
UserException ues = null;

if(exception instanceof UserException){
ues = (UserException) exception;
}else{
ues = new UserException("未知错误");
}

ModelAndView mav = new ModelAndView();
mav.addObject("message", ues.getMessage());
mav.setViewName("/error/userError");
return mav;
}

3.在Controller类中直接抛出异常

throw new UserException(user.getUsername()+“无访问权限”);

4.在springMVC的配置文件配置全局异常处理器

   <bean class="cn.com.mvc.exception.UserExceptionResolver"></bean>

   

猜你喜欢

转载自www.cnblogs.com/lihaitao33/p/8934662.html