java 局部异常 spring_springmvc处理局部异常和全局异常

springmvc通过HandlerExceptionResolver(是一个接口,在spring-webmvc依赖下)处理程序异常,包括处理器异常、数据绑定异常以及处理器执行时发生的异常。HandlerExceptionResolver仅有一个接口方法,如下

623caac86fb4847cb4651216f78a698a.png

当发生异常时,springmvc会调用resolverException()方法,并转到ModelAndView对应的视图中,作为一个异常处理报告页面反馈给用户。

局部异常处理

局部异常处理仅能处理指定controller中的异常,使用@ExceptionHandler注解(在spring-web依赖下)实现,@ExceptionHandler可以指定多个异常,代码如下

@RequestMapping(value = "exlogin.html", method =RequestMethod.GET)publicString exLogin(@RequestParam String userCode, @RequestParam String userPassword){

User user=userService.selectUserByUserCodeAndUserPassword(userCode, userPassword);if (null ==user){throw new RuntimeException("用户名或者密码不正确!");

}return "redirect:/user/main.html";

}

@ExceptionHandler({RuntimeException.class})publicString handlerException(RuntimeException e, HttpServletRequest request){

request.setAttribute("e", e);return "error";

}

在异常处理方法handlerException()中,把异常提示信息放入HttpServletRequest对象中

展示页面输出相应的异常信息${e.message},输出自定义的异常信息

全局异常处理

全局异常处理可使用SimpleMappingExceptionResolver来实现。它将异常类名映射为视图名,即发生异常时使用对应的视图报告异常。然后在springmvc-servlet.xml中配置全局异常。

error

指定当控制器发生RuntimeException异常时,使用error视图显示异常信息。当然也可以在标签内自定义多个异常。

error.jsp页面中的message显示,需修改为${exception.message}来抛出异常信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值