讲完了拦截器接下来讲讲异常处理,这些都是我们在代码编写完成后的一些处理机制,通常异常处理的好有两方面的好处,一是使维护人员便于发现问题,解决问题,二是使普通用户也有舒适的用户体验,当我们某次访问后,看到一片英文字母,然后错误代码500,这肯定会给用户造成不好的使用体验,因此一个好的异常处理是很有必要的。
既然说不希望看到一大片的异常代码信息,那么我们肯定需要自定义页面,这种页面可以让用户不会感到网站有巨大缺陷,比如我们可以加一些图案,设计一些语言类似于“网络走丢了...”、“请联系管理员..."等,使我们网站报错时,给用户一个定心丸,同时也增加了隐密性。
目录
2.1 使用框架自带的SimpleMappingExceptionResolver
1. 编写错误提示页面
这里的错误提示是自己编写,可以理解为当发生了什么类型的错误后,框架会自动显示什么页面,而这个页面是你自己设计的jsp,也可以加样式,js都可以,放在webapp里即可。
2. 配置异常处理器
2.1 使用框架自带的SimpleMappingExceptionResolver
这是一个springMVC自带的简单异常处理器,是编写的一个类,我们只需要在spring-mvc.xml中加入他的bean即可,不用id,如下使用:
class路径在上面,然后依赖注入,第一个name="defaultErrorView",代表的是当下面的map中找不到目前发生的异常类型是,默认调用的错误视图,而下面的map里的键值对,就是我们可以自定义的,键代表异常类型,value就是我们要调用的错误视图,默认是jsp,从webapp的一级目录开始查找。
2.2 使用自定义异常处理器
首先我们要创建一个异常处理器类,名字就取个MyExceptionResolver吧,在类里我们需要实现一个自定义处理器的接口如下:
这个接口名就是 HandleExceptionResolver,然后需要实现的方法是:
只有这一个方法需要实现,然后我们方法体内new一个ModelAndView对象之后,可以通过分支语句返回不同的东西,当然这样做的意义不大,我们还是需要根据实际的业务需求来处理,只是在这个类里,在这个方法中,我们判断异常类型的方法就是通过e instanceof MyException,e就表示传入的异常对象。
然后我们要对自定义的异常处理器进行配置:
直接一个bean加个class属性就搞定了,然后当出现异常时就可以使用了。