小程序页面之间进行传值的操作办法
508
2022-10-03
SpringMVC基于配置的异常处理器
目录一、基于配置的异常处理储存异常信息二、基于注解的异常处理
一、基于配置的异常处理
SpringMVC 提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver。
HandlerExceptionResolver接口的实现类有:
DefaultHandlerExceptionResolver,这个是默认使用的处理器,之前遇到的一些异常,其实springMVC 都已经给我们处理过了。
SimpleMappingExceptionResolver,这个可以让我们自定义异常处理。当出现指定的异常,可以设置返回新的视图。
使用SimpleMappingExceptionResolver,在springMVC的配置文件中:
示例里使用的一个处理运算异常的类ArithmeticException,里面的值 error 表示异常后跳转的视图。
对应的,新建一个error.html页:
出现错误
接下来,造一个异常:
@RequestMapping("/testExceptionHandler")
public String testExceptionHandler() {
System.out.println(1/0);
return "success";
}
正常情况下这个处理器会跳转到 success 页,但是里面有个 1/0的异常,所以会按照配置跳转到 error 页。
重新部署,测试一下,访问http://localhost:8080/springmvc/testExceptionHandler:
成功跳转到 error 页。
储存异常信息
此外,还可以继续属性exceptionAttribute,设置一个key用来存放异常信息,默认存在当前的请求域中:
那么在 error 页中就可以使用到ex来获取异常信息了。
出现错误
重新部署,刷新下页面:
二、基于注解的异常处理
springmvc 同样也提供了一套注解,通过注解方式也可以实现上述的异常处理。
新建一个控制器 ExceptionController:
//@ControllerAdvice将当前类标识为异常处理的组件
@ControllerAdvice
public class ExceptionController {
//@ExceptionHandler 用于设置所标识方法处理的异常
@ExceptionHandler(value = {ArithmeticException.class, NullPointerException.class})
public String testException(Exception ex, Model model){
// ex表示当前请求处理中出现的异常对象,放到请求域中
model.addAttribute("ex", ex);
return "error";
}
}
@ControllerAdvice将当前类标识为异常处理的组件。
ex表示当前请求处理中出现的异常对象,用Model放到请求域中。
现在注释掉配置文件里的处理器,重新部署下,刷新http://localhost:8080/springmvc/testExceptionHandler:
依然可以。
以上就是SpringMVC基于配置的异常处理器的详细内容,更多关于SpringMVC异常处理器的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~