异常处理

1、页面跳转形式

首先我们在Controller层定义一个error的类,并写一个普通的抛出异常方法 输入图片说明

正常来说页面会显示报错

输入图片说明

这时我们需要定义一个异常的全局捕获类MyselfExceptionHandler 输入图片说明

我们直接以ModelAndView的形式返回即可。设置跳转页面error 输入图片说明

这样,在发生异常的时候,用户就不会看到奇怪的页面 输入图片说明

而是由我们自己定义的错误页面(项目团队可以自定义一些好看的内容及客服联系方式等)

2、ajax形式

当然除了web形式的错误,还有ajax请求报错,我们也需要做全局异常的捕获。 输入图片说明

我定义了一个页面,引入了一个ajax请求的自定义js 输入图片说明

方法会向后台接口做请求 输入图片说明

而请求的这个方法正好有一个自定义的常规异常。这时我们的全局异常捕获类就会进行捕获,并返回相关的信息 输入图片说明

页面的js就会根据返回的状态码进行判断,不会导致请求方法一直loading。

3、统一返回异常的形式

当然上面两种是针对性的解决单一问题,我们还需要综合性的解决以上的异常问题,同时兼容ajax与web异常。

那么其实和很多实现方式一样就是做判断,在捕获异常后 ,判断是什么类型的针对性处理 输入图片说明

这里判断是哪种形式的异常分别处理 输入图片说明

ajax的请求有固定的写法,就是判断请求头的内容

之后就可以愉快的处理web或ajax的异常啦。

原文地址:https://www.cnblogs.com/UncleCatMySelf/p/9250979.html