SpringMvc的异常处理大致可以分为三种方式:

第一种,使用xml注解的方式来为SimpleMappingExceptionResolver这个类注入属性,来设置当有异常发生时进行返回的视图,也可以对某一个异常进行单独处理,具体做法如下:


在IOC容器中定义一个bean ,类名是SimpleMappingExceptionResolver。我们可以在其bean中注入属性defaultErrorView这个属性代表的是默认的错误视图,换句话说就是如果只配置这个属性那么无论发生任何异常它就会返回这个属性所对应的value值的视图(在这里因为我配置了试图解析器所以我这里只是写了视图的名称而已)。

如果想要返回自定义异常的视图可以使用属性exceptionMappings因为他是一个Properties类型的变量,所以这里我们使用<props></props>标签来为这个属性注入值,就是为对应的异常类型返回与之相对应的视图。


    第二种,来定义一个类让其实现HandlerExceptionResolver接口,并实现他的方法resolveException(),通过这个方法可以为发生的异常进行处理,返回对应的视图。

具体如下:

在实现了HandlerExceptionResolver接口的类中,调用ModelAndView对象的setViewName方法来设置发生异常后返回的视图名称,最后只需要在ioc容器中为这个类生成对应的bean就好了

    第三种,使用@ExceptionHandler注解:在使用该注解的方法中,来对发生的异常进行视图处理。这种方法是最为简单的一种,它看起来十分的方便,操作起来也十分容易。就是在控制器中定义一个方法,在该方法的上面加一个@ExceptionHandler注解,如果这个注解不加任何参数代表的是一切异常都会按照这个注解的方法中所定义的视图资源进行返回。如果想要返回自定义类型的异常的话,只需要在注解中加入被处理的异常的类类型即可(也就是 类名.class 的形式),所以说是十分的方便的,当然我们也可以让控制器继承一个实现了HandlerExceptionResolver接口的类,然后这个控制器就会按照该类处理异常的方式进行异常的处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 spring IoC容器和beans的简介 Spring 框架的最核心基础的功能是IoC(控制反转)容器,...
    simoscode阅读 6,753评论 2 22
  • 1.1 Spring IoC容器和bean简介 本章介绍了Spring Framework实现的控制反转(IoC)...
    起名真是难阅读 2,621评论 0 8
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 一 我已游荡世间多年 我没有过往 亦没有未来 我不知道我是谁 亦不知所往所归 二 没有了你的日子 前方就是一页页的...
    零琋阅读 408评论 19 6