异常处理

81 阅读1分钟

在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面将介绍使用Spring MVC统一处理异常的解决和实现过程

  • 使用Spring MVC提供的SimpleMappingExceptionResolver
  • 实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器
  • 使用@ExceptionHandler注解实现异常处理

Spring的异常处理:

1、局部异常:只能处理ontroller中的异常处理,@ExceptionHandler

//测试异常处理

@RequestMapping("/testExcep")

public String testExcep(String name,String pwd){

User user = userService.doLogin(name,pwd);

if (null==user){

throw new RuntimeException("异常信息:用户名或密码错误");

}

return "index";

}

//处理(捕获)异常

//@ExceptionHandler {}中可以定义多种异常类型

@ExceptionHandler(value = {RuntimeException.class})

public String handlerExcep(RuntimeException re,HttpServletRequest request){

request.setAttribute("re",re);

return "error";}

2、全局异常:对所有的异常进行统一处理,进行正在Spring中配置:SinpleMappingExceptionResoler,视图解析器

error