00:01
跑步试试是吧?哎,咱们找到我们taste handle。在这儿,咱们这回呀,咱们制造一个空指针异常。咋能产生空指针异常?死肉一个呀,这么凶残吗?去做也不难吧?然后打印一下,这边要一个A的get。啊,对吧。然后这边人家都已经警告你了。这个是控制帧的访问是吧,这个变量,呃,这个它人家现在编译的时候就能检测到这个变量,现在只能是脑是吧,在这个位置啊,但是我。我想告诉他,我这是故意的,对吧?咱们debug一下啊,咱们debug从这走一下,包括我们这个。
01:00
嗯,E的那个。呃,我们在这儿打个断点啊。看看它是不是从我们这个地方走。看看这次是多少秒?要不每次等这服务器启动挺无聊的哈,咱们要不开一个盘口是吧,你下注是吧,你是下这个,你你看这次是15秒13秒是吧,你看你压中,你压中了你就赢了啊。啊。来,我们先点一下它。过来,Switch。
02:05
大家看到它确实是从这儿走啊,然后往下一步这边判断这是false啊,就不不是aja过来这边就把这个数据相关的放到这里边,然后。就去了这个这个页面。那么如果是点它的话。点它也从这走,这个判断是处。哎。然后呢?就依次去去准备这个东西,去创建它,但创建它呢,在这他他去。有点慢哈,刚才他等了一会儿转换成得到这个计算数据。啊,Result等于failed,那就是没有别的了是吧?嗯。诶。对呀,我这里边儿我那个message呢。Message怎么没有了?没有传进去吗?
03:03
是不是message吗?这不是message吗?怎么搞的呢?我看啊,这没船吗?这不是吗?诶,这个气管哈,看这有没有哈,诶。压着。哎,Message就是那哈,哎,这个有点奇怪哈。哦,是是这个问题吗。是不是控制针异常,没有没有消息。是不是他的问题啊。是他的问题还是我的问题?我觉得应该不是我的问题。那可能应该,我感觉应该是他的问题哈,这个exception这里边没有消息。对,你包括刚才我们去这个。这边他又又访问了一次。
04:05
这个得走。哎,对,这边你看这个来页面上也没显示,那就是空指针异常,这边没有消息啊,空指针异常它自己默认没有消息。那就没有就没有吧,是吧,那应该我们代码没有什么问题哈,写回来以后。对,我们页面跑了。重新来一遍哈。直接让他过去。哎,页面这儿过来。嗯。返回的是它对刚才这个是请求哈,这个请求现在响应的返回的是这个啊。响应返回是这个,这是这个在控制台打印的。嗯。哎,这是我们说,哎刚才写的这个方法呢,我们是做了一个测试。这个断点就去掉了哈。
05:02
但是其实还有个小问题哈,这个方法我们稍微改进一下。因为为啥要改进呢。我现在是映射的是空指针异常。我假如说我要再映射一个数学一场。这个叫做。假设是我们massion。先个闹哈。这边呢,Exception handle。这里边儿呢,有一个Y6。它等于比如说arithme。哎,这个我这边这回要处理这个这个数学异常。然后呢,这是exception。包括他后边呢,呃,Request response啊,这个也是都给他拿过来。
06:06
然后呢,包括里边这个处理的过程。直接拿过来。稍微改一改就能用了。哎,嗯,他这只不过。啊,需要这剖一场。哦,连除了泡一场都不用改呀。对,因为这边都是exception哈。这里边儿就是,然后可能这个地方页面呢,改一改对吧,哎,不同的异常去不同的这个页面,那么这个代码呢,就太太多的代码是相似的了,将来如果我们再写个登录失败的。再写一个,呃呃,登录不允许访问的啊,再写个什么什么别的,这个这个这个页,这个这个类里边这个重复的代码就太多了。哎,那么这里面重复代码很自然的,我们就想到把它们给抽取出来。
07:05
因为这个方法就当前类自己用,咱们就写个私有的就行了啊。呃,让他也返回一个model。哎,然后呢,这个叫做。Common。就是这是一个,呃,通用的。通用的啊,然后这边呢,Return一个model。先唱个闹吧。嗯,把什么给我们传进来呢。我想啊。页面对这个得传进来,你要去的这个视图得给我传进来。Your name。然后呢,我想想别的啊。Request response对象。嗯,参数是一样的是吧。
08:00
参数是一样的,我们这儿就用exception来介绍一下。啊,多肽,多肽是个好东西。诶,这个快。哎,然后呢,把里边这个代码呢粘过来。我用不用那什么一下啊,我把这个类吧。我复制一份啊。我复制一份,这个叫做old。然后这个O的这个呢,是我们的这个旧的哈。嗯,不然改的太多了,但是我又,哎这么样。我在旁边吧,我建一个文本文件。建一个文本文件。就叫这个类的名字啊,不然的话这个改动太大的话,大家回去看的话不方便啊。
09:02
Ctrl a ctrl c,把这个旧的代码拿过来。旧的代码没有这个哈。哎,就是省得这个我们这儿改了以后,你想看上一个版本看不了哈。嗯,然后这回我们就放心的把这些就就粘过来啊。剪切过来。啊,到这儿。检查一下。呃。有异常还是抛出就行。哎,这个视图的名称啊,用视图的名称来设置它。别的。别的不用改了是吧。哎,对,把猫又给他返回。哎,把这个返回。哎,返回OU这个对象,那么上面在用的时候,咱们就。
10:06
就简单了,等于说在这儿呢,这边就是说。嗯。你得指定一下你要去的这个页面,我有内幕。比如说。按着这个,然后下边直接去调方法就行了。啊就就就搞定啊,然后上面那个呢,你要再写映射别的异常,就把这个拿过来。就不要这么多了。哎,这个页面这个根据你的需要去把它换成一个,呃,你指定的页面,我们现在就不再建别的了啊,因为这大家很明显一一改就行了。然后我们把这几个注释吧,我觉得可以给它放在这个通用的方法这。
11:01
实际捕获到的异常。嗯,这是当前的请求的对象。呃,这个是一个。当前响应的对象。这个是我们,哎。和当前异常。呃,对应的这个页面。或者咱们说人话吧。呃,就是说这个,呃。哎,这个处异常处理完成后要要去的地方是吧,要去的页面。这多好理解。行,这就是我们封装以后,下次以后再写的话,咱们就写上面这些啊,写上面这些咱们就其实就是指定异常类型,指定一下它对应的这个页面,别的就都交给他,就不用再重复写了。
我来说两句