00:00
好,那咱们刚才呢,咱们来写的基于配置的这个异常处理,其实大家来看这个东西其实也不难,对不对,也挺好配置的,咱们只要把我们当前经常出现的异常啊,或者说可能会出现的异常,咱们把它给写在。我们的这个标签里面对吧,然后呢,来给它设置一个相对应的一个什么,是不是给他设置一个相对应的视图名称,那出现这个异常是不是就能够跳转到指定页面,然后并且咱们还可以通过这个属性来设置我们当前共享到请求域中的异常信息的键,对不对啊,行,那基于注解的异常处理,那这个东西是什么意思,就是spring VC呢,也为我们来提供了一套注解啊,然后通过注解咱们同样可以来实现这个异常处理,OK吧,好OK,大家来看咱们的第一个注解叫做it controller,然后还有一个呢,就是咱们当前的一个exception handler,然后这个注解来咱们下面就来测试一下啊,跟它的原理基本上是一样的,跟它的思路其实也是一样的,其实说实话这个东西也没啥思路,那不就是出现咱们指定异常跳转到指定页面,然后再把咱们当前的异常信息。
01:17
然后是不是共享到我们的请求域中,对不对啊好啊,行,那大家看,那我在这儿呢,咱们再来创建一个,再来创建一个这个类,也就是说呀,咱们的这个包,咱们就叫什么呢?叫ex ex exception,再写个点吧,再写一层吧,叫hand handle handlera,可以吧,啊,然后再点,然后咱们叫ex con,呃,叫做exception,然后算了,这个东西其实就是一个控制器啊,这个东西的本质其实就是一个控制器,咱们就直接写在controller中吧,行吧,然后咱们叫ex c exception con controller啊好,大家看用的这个注解叫什么?叫control a the OK吧,你会发现诶,咋的了。
02:17
这前面是不是有一个这样的图标啊,来,咱们把这个test的CTRL打开,大家看这俩图标一样不一样,行,那说明什么?那说明这个注解是不是应该它包含了咱们的control的功能,大家说对不对,对吧?你比如说我把它点开之后,咱们的这个注解是用谁来标识的a comp,那大家记不记得咱们在学习spring的时候,咱们说过标识组件的那四个注解功能一样不一样啊,一样的,对不对?所以说既然我们当前的这个注解是用咱们的a controller来进行标识的,所以说这个注解它就是我们当前组建的一个什么扩展注解,能听懂吧,是在咱们当前的这个注解上扩展出来的一个注解,OK吧,好,所以说它也具有什么功能,将类标识为组件的功能,能听懂吧?好啊,行,然后再往下大家看,然后呢,咱们需要来写一个注解,叫做X。
03:17
Z handler,然后括号里面咱们需要来写什么,咱们需要来写,点开。大家看里面有个value,看懂了没看懂了吧,然后value是一个什么类型,大家看是不是一个class受阻类型,能看懂吧,好,那所以说它代表了什么意思啊,就是我们现在呢,咱们在这里面可以写个value可以型。好,然后可以在这来写个大括号,这大括号里面来写的就是我们当前可能会出现的异常,比如说咱们在这,因为它是class类型的,那所以咱们就要来写某一个类型的class对象,大家说对不对,对吧?Arime exception.class逗号,然后nine point exception.class能看懂吧,就是如果我们当前出现了这个异常或这个异常,然后这个时候就会通过我们下面这个注解锁标识的方法来处理,我来作为我们当前的新的控制器方法来执行,能听懂不?哎,行啊,好,Pali返回一个string,然后咱们这个就叫做test ex,诶。
04:37
哎,我这里面是不是有一个叫什么来着,叫做exception handle对吧,那咱们就test e CL叫test exception吧,行吧,好OK,然后懂吧,大家说怎么怎么怎么做呀,你直接出现异常之后,直接return error是不是就完事了呀,能看懂吧,就是如果出现了咱们上面的这些指定异常,然后它就会直接来执行我们当前的这个方法,作为新的控制器方法,能听懂吧,啊,行,然后那我们是不是还可以来获取咱们的异常信息啊,大家说对不对,怎么来获取异常信息?看好这样写,直接在这里面写个exception,能看懂不好,然后这个exception来表示的就是我们当前所出现的异常,能听懂吧,哎,直接写个exception啊,行参位置写个exception,表示的就是当前出现的异常,那我们是不是要把它放在咱们的请求域中?
05:37
往请求域中共享数据,咱们讲了五种方式,Solve API model and view model map model map对不对?那咱们model大家为啥喜欢用这个model啊,因为model map比较长,因为map还要设置范小,是不是啊,跟我想的一样啊,好,Ad attribute,就喜欢长的,不喜欢长的。
06:07
一一看到模特就想到模特啊,就想到模特了啊想的可不爽啊,对啊,行,来,那咱们就这样去写别的咱们还需要管吗?不需要,大家只要把我们当前这个类给它放到这儿,它就可以自动来检测我们的控制器方法执行过程中的异常,能听懂吗?啊,行,然后我们在这儿咱们来重新部署,我页也没有改,我页面没有改啊,大家注意,因为需要改不需要啊,不需要,为什么不需要呢?因为我们当前咱们通过咱们的这一个就是我们的注解版的这个异常处理,咱们是不是往请求域中来放的异常信息,也叫ex是不是啊,对吧?好,那我现在我把spring vc.xl里面,咱们把这个东西直接给它注释掉,可不可以啊,可以吧,好OK,我把这个东西先注释一下,我再把这个东西注释一下,能看懂吗?
07:07
算了,他能一块注释吗?不能啊,可以是吧,哎,还是可以的啊,他把咱们这里面的这个嵌套的这个注注释是不是直接把它给变成它所对应的什么了实体了是不是啊,来写啊好,然后咱们再来重新部署一下,大家看效果啊。好。哎。刷新。点击看看跟刚才的效果一样不一样就行,对不对,点击大家看好使不好使,好使,我是不是已经把这个注释掉了,那所以说现在咱们能够起作用的是谁?那不就是咱们的exception controller吗?大家说对不对,对吧,好啊,所以说呢,大家看这个就是我们基于注解的一个异常处理,能看懂吧,哎,好啊,挺简单吧啊行。
我来说两句