00:00
哎,那么我们有了这个工具方法的话,下边我们就可以看看这个基于注解这个事儿咋写哈。啊,我们当然得先去创建这么一个类啊,注解是得写在这个类上。我们叫做一个。Exception。Over。这是一个我们自己写的。在这个类上呢,需要用一个注解叫controller advice。然后呢,下边写具体的方法。这个方法呢,它是返回猫段。模型与视图。比如说呢。它的对应的方式哈,它是一个异常类型,对应这么一个方法啊,比如说呢,这个叫。Runtime exception。或者咱们换一个吧,咱们来个空指针异常。
01:00
No pointer。Exception。咱们return一个县。怎么能够把这个异常的类型和这个方法关联起来,有一个exception handle。这里边value呢,你看它要一个class类型的一个,呃,对象我们就来一个呢。Pointer。Conception their class。穿起来。你看它是个数组,也就是说呢,在这儿它可以说一个方法对应多个类型是吧,这是个数组,不过我们就别整这么复杂了,咱们就一个对对应一个就行了。然后呢,具体的这个异常的对象呢,从这个方法的参数这传进来。Pointer exception。Exception。哎,咱们就能够拿到这个exception这个对象。
02:00
然后去哪个页面呢?放到model and view这个对象的里边。哎,在这哈。注释一下啊。这个controller的外注解。嗯,它表示当前这个类是。一个呃,异常处理期类,当然是基于注解的啊。基于注解的异常处理器的类。下边呢,Exception handler。它是将一个具体的异常类型和一个。呃,Java这样的方法哈,关联起来。也就是建立这个映射的关系啊,这个一捕获到这个异常,咱们就找这个方法。那么具体这个方法的里边,咱们怎么去去进行这个异常的处理。
03:01
呃,第一步吧,咱们还是先判断一下这个请求的类型吧,啊,咱们得看看当前请求什么类型,然后看是返回杰森还是返回这个。返回,这个叫。页面。所以说在这儿呢。我们把request对象给传进来。这个C它好的这个地方就在于这个基本上你要啥你就你就写啥,要啥有啥。对,这也注释一下啊,这个就是说我们这个。嗯。这是实际捕获到的这个异常类型。然后下边这个呢,是我们的请求的对象啊,这是一个。当前请求对象。所以说又靠这个我们就可以去判断。当前请求的类型。
04:01
U点榨。Result。嗯。第二步哈说如果是一个AJX的请求。那是AX请求,咱就不找页面了,咱就就就不管是啥都不找页面了,它如果没处的话。这边呢,我们就肯定返回闹了。就不给Mac这个猫用了,就不给这个了啊,咱们就正常去处理了。看这里边哈,如果是HX请求,那么我们就。呃。去创建,或者说就是说去就是创建一个result对象。我们用这个result。
05:02
过来这个fail。异常消息从哪来?哎,这消息从哪来?我说漏嘴了。这消息从哪来?啊,我得告诉人家出什么问题了呀。哎,是不是这个就异常的对象呀,对吧?哎,从这里边这个这这个东西吧,后边也要用啊,后边也要用,所以这个咱们拿到前面啊,前面这给它就给它直接就获取到了。啊,就是我们说获取异常的消息。后边用不用。后边后边我们,哎又不想了。后边是可以,其实后边吧,它可以直接把异常对象放到这个模型里边啊,所以在这儿我们在这儿获取一下也行。Get message。啊,拿到这个消息,返回一个result entity对象。
06:01
这个时候我们确实是不知道这范型写啥了啊,就是object就object吧。然后呢,第四个的话就是。下一步我们得把它转成这个杰森啊,为了转杰森呢,我们去创建一个勾对象。哎,尿一个。高3.to。把这个result entity传进来。拿到接。对,这是这个第五步啊,这是将result entity对象。转换。为这个阶层字符串。然后呢,第六步就是诶。我们得,嗯。将。串。作为这个响应体返回给浏览器。
07:01
那么我们得要用到response。Http response对象。response.get writer。点right。呃,节省给他写回去啊。这边有异常呢,就让它往外泡。然后呢,第七步在这儿啊,这个嗯,由于上面已经通过。原生的response对象。返回了响应。所以不提供model view,我们就在这个分支里边,就不提供这个对象了,随便MC呢,一看这你返回的是no他就知道了啊,你这边自己自己去负责给这个响应啊,这是我们这是a jx这部分。
08:10
那如果因为这已经return了。下边能走到这就肯定不是AX请求了,哎,如果不是AX请求,那么我们就呃,就比较简单了啊,如果不是AJX请求。则将这个嗯,Exception对象。则先创建一下model对象。这个我们就直接尿就行了。哎,然后呢,下一步是将。Ion对象存入modern存入模型。哎,点这个叫呃I的object。
09:03
属性名呢,起个名就叫exception。然后呢,值的话就exception。第十,设置。对应的视图。哎呀,这个让他去哪儿呢?这个要再建个页面吧,有点儿闹腾。还让他去这个,还让他来这儿吧。啊,因为这个东西就是我们指定的是哪他就去哪啊。CTRLC。不过这么整好像看不出来是。看不出来是从这走的是吧,咱们干脆一会第八个下吧。到最后呢,这边我们去这个11步哈,就是说去返回model view对象。
10:00
啊,这个就,哎,这是一个完整的一个处理的一个过程。
我来说两句