00:00
那下边呢,我们来讲这个SC里面的另外一个比较,呃,用的比较多的叫做异常对异常好,同学们看一下自己的屏幕。那么呃,这个异常是什么呢?呃,Scan提供try catch来处理这个异常,那么TRY里面用于包含可能出错的代码。Catch块用于处理呃踹块中发生的异常。那可以根据需要,在程序中可以有任意这个数量的开,就是根据你的需求,你可以呃根据业务逻辑来确定到底需要多少个拆开,对。那么处理语法处理和Java类似,但是又不尽相同。那么在这里呢?首先我们来简单回顾一下Java的这个异常,首先我问同学们一个问题,在Java中,同学们学异常处理的时候,老师说这个异常有几种啊?
01:00
大致有几种异常啊?对,是不是有一个我们称之为运运行时异常,还有一种叫编译是异常是吧?其实准确的讲这个说法是有一点小问题的,是不是,为什么呢?呃,因为这个异常编译异常编译,呃异常也好,还是运行异常也好,其实真正的异常是指什么呢?你编译他只是觉得这个代码有可能抛异常是吧。那那你想你看我们打开一个文件的时候,他说你有可能有个IO异常,那那实际上这个人家如果文件在的话,其实你这个异常也不会发生吧,是不是实际上实际上准确的讲。我们的异常是在处理什么呢?准确的讲异常实际上它是对这种可疑代码或者可能出错的代码进行一个处理,是这意思吧,啊到了SC里面呢,我告诉大家,它就不再分什么编译异常和这个运行异常了没有。
02:00
它只有一种异常,就是运行异常,明白吧,就它这个逻辑它就简化了,那么不管怎么样呢,我们来回忆一下Java它是怎么处理的,我把这个概念啊抛出来啊,同学们啊,Java异常呢,这有个小案例我就不写了,我就直接给同学们跑一跑,看一看就行了。待会儿呢,我们做一个比较OK,同学们,那么我们新建一个小包,叫exception。对,Exception excep ion,那为了防止这个是个关键字呢,直接写个my exception好吧。好的,那现在呢,我们来写一个小小的案例,哎,这个时候我要写一个Java文件,同学们,这个ID呢,也可以开发Java啊,让我写个DEMO,就是Java的一个异常的回顾,Exce t demo01简单回顾一下。那就写个class了,同学们,那现在呢,我们写上这个总函数,好,因为时间关系呢,我就直接把这个代码拿过来看一下,我们来看看Java的异常它是怎么处理的呢?哦,他这样子的,假如我这里有段代码,我认为这段代码很很可疑,或者说可能有异常。
03:13
那这个时候呢,我故意制造了一个异常,就是算术异常叫啊啊rme,就是我用B去除以I,而这个I呢,我故意给了一个零对,那肯定是必然要抛异常的,对吧?好,那么它这个结构呢,是踹里面有catch,哎,这个catch是不是可以有多个呀?哎,同学们以前在学的时候,Catch可以有多个对,那么finally呢,是最终要执行的这个代码,我问同学们一个问题,就说如果说抛出了异常。比如说抛出异常,这个肯定会被catch住是不是,那么我问大家抛出异常以后,这个finally要不要执行,要执行,就是说始始终是要执行的是吧?始终是要执行的,好的,那呃,我们来运行一下这段代码。
04:02
跑一个。好,这个呢,就是我们Java的一个异常处理的机制,看这里,你看他在这里呢,抛出了一个。抓住了就在这打印出来的,那么我问大家一个问题,就是如果我们捕获了这个异常的话,是不是代码就可以得到继续执行,是这意思吧?哎,这个可以继续执行,看一看有没有继续执行,继续执行其实捕获异常最主要的作用呢,一个是呃,把这个异常进行处理,那么代码能够保证继续执行,那么我们运行一下,我们发现OK,继续执行呢,其实是能够得到的,只是这个异常呢,因为你这打的是系统提供信息,看起来比较吓人,如果你不输出。你不输出这个代码,就好像好像就是没有没有出什么问题一样,是吧,你看这样不是看起来好像是正常的吗?只是你这边可以处理,就抛出异常以后,根据你的业务逻辑,你是把这个异常,呃进行一个再次处理还是怎么样,那就是你的业务逻辑了。好,同学们,我们可以看到Java的异常处理基本上就是这个结构,就是try catch finally。
05:11
好,这是我们Java异常的一个回顾好的,那现在呢,我们看一下Java异常的特点,第一个Java语言按照try catch这个地方应该多写几个catch。啊,Java catch catch,打几个点,Java catch catch finally方式来处理异常的,那么不管有没有捕获异常finally,你是不是都会被执信。犯罪,如果没有异常犯罪要执行吗?诶大家回忆一下,如果这没有异常,比如说我这里写个七,那这个写个七的话,是不是就没有异常了呀,那么这个B那里要不要执行,同学们要要不要执行,这个是个基本常识啊,我们来看一下有没有执行过呢?诶我们可以看到finally是不是也是执行了的呀。啊,千万不要以后人家问你这个最基本的,你说诶没有异常,他就不执行反能力,那就完蛋了啊,他就完蛋了,同学们不要把这些基本的忘掉,好就是老师说的这个,那么因此呢,Finally里,在我们Java里面呢,最主要的是用来干什么事呢?就是去释放一些资源,比如在这个TRY里边,我们打开了一个文件,或者是连接了一个数据库,或者是得到一个socket,往往呢,我们在B里面进行一个释放,第三一点,呃,可以有多个catch,但是。
06:27
捕获这个捕获这个异常的时候,他是要把范围小的异常写在前面,把范围大的写在后面是不是,那我问大家,如果把范围大的写在前面,把范围小的异常写在写在这个后面,能不能运行,能不能编译成功呀,编译不了,但是我告诉大家开了可以。啊,不管这边我们把这个特点给他写,写出来,大家看,假如我这么写这个代码就是对的catch。Catch,我们先把这个小小的异常写到这啊,Em ex。
07:03
好,比如说我在这里面呢,也也来说出这句话,你看这个代码也是OK的。你看。这个我们把小的异常写在前面,把大的异常写在后面,这个是可以的,在Java里面它是支持的,但是你不能反着写,说老师我把这个范围大的异常写在前面,把范围小的写在后面呢,马上就会编译出错,他说什么呀?他说你的这个异常已经被catch了,被谁catch了,被他catch了,也就是说他认为你这个代码是永远不可能被。执行的,为什么呢?因为我我这边你我这边一定会捕获,因为它是最大的异常嘛。那你这样被捕获了,你这个开就不会被捕获,那你写的代码没有意义,所以说它这个在Java里面呢,它这样写是错的,Java中不可以把把范围大的,把范围大的异常异常写在写在前面啊写在前面,否则报错对吧,否则报错。
08:06
好,那么这是我们对这个Java议程的一个简单的回顾,好,简单的回顾,OK,好,那么我们先把这个Java议程呢,给大家进行一个简单的板书,好,来走一个,待会呢,我们要谈这个SC的议程了。异常。异常好,那给他来一个小小的标题二。那首先我们来对异常做了一个基本的介绍。诶,我们做了一个基本介绍,就说异常大概是一个什么东西,标题三。好,这边呢,我来一个小箭头,语法上跟Java待会儿是一样的啊,那下面呢,我们紧接着又给大家看了一个Java异常的小案例,对吧?刚才我们走了一个小例,就让大家回忆一下Java异常是它的一个机制来吧,这个Java异常回顾呢,就是刚才老师写的这一段代码。
09:08
Or这一段代码。好,我把这个呢改成正确的,还把它改成正确的啊,把它撤回去。啊,我把这个小的异常写在前边。啊,把范围小的异常写在前边,把范围大的异常呢,咱写在后边啊提示这有一句话大家一定要注意,好,我把这个代码呢给同学们放到这里。这是呃,Java异常的一个经典案例,放到这儿了。那呃,讲完这个过后呢,我们对Java的异常处理呢,做了一个简单的总结,这些都是基本常识问题,好,我把这个简单的整理啊,注注意事项呢,给大家也放到这里。对。啊放在这里,然后呢,我总结了有什么三句话啊,总结三句话,第一句对吧,第二句不管有没有注意看啊,不管有没有捕获到异常,都会执行finally,那如果面试官问你,那finally有什么用呢?那你就告诉他finally一般用来释放资源就可以了,就告诉他是用来释放资源的,经常用来释放资源就OK。
10:19
好,这是呃,Java异常的一个回顾,那下面呢,自然就要开始讲我们的这个SC的异常了,我们来看看SC的异常是怎么德行啊,首先我们可以看到SSC的异常,它的整个这个呢,结构几乎跟Java一样,但是呢,它catch只有一个了。它只有一个,那问题来了,它开始有一个,它怎么去匹配到不同的异常呢?他用的是里面有个case语句,对case,那么当我们这个抛出的异常跟我们这一个异常。注意他这个异常也是来源于Java异常的,他并没有做一套新的东西,听这句话啊,就是SKY异常呢,仍然沿用了Java异常这个体系,所以说它只是用了它,那么这个它匹配,如果你这抛出一个异常匹配到啊啊arithme就是一个算术异常呢,我就。
11:13
执行这句话,注意这后面呢是一个代码块。这个是捕获到啊,或者匹配到一个异常,这个箭头代表后面是我们处理的语句,那如果捕获到这,呃嗯,匹配到这个呢,就执行这个,最后仍然有个finally finally呢,也是最终要执行的代码,好了,同学们,那时间的关系老师就不写了,直接拿过来为我所用来吧,我们现在写一段开的立场。处理好的。Scanner scanner的exception,那么一个DEMO。给它写成object。来,同学们请看代码。好,粘到这儿。好,我们先来对这做一个简单的说明,我这写上几句话做一个小说明啊各位朋友,第一点我们可以看到在开里面呢,SC中只有啊,只有一个catch了,这是第一个特点。
12:13
同学们,刚才看到第二个地方要注意的,一个case里面可以有多个case,而一个case呢,就可以去匹配一种异常,在这个case中在什么呢?在开中有多个多个case啊,每个case呢,可以去匹配,每个case可以匹配,匹配一一种异常啊,一种不叫一个啊,叫一种异常啊,具体来说呢,比如说这个语法。哎,比如这个语法。OK,那么第三点我们来看到第三点呢,同学们注意看到它这个是一个关键啊,这是一个关键符号,就不能改,这个是一个这个关键字关键关键符号啊,关键符号不要改,表示后面后面是呃异常处理的,对这个异常是对该异常该异常的处理代码啊,这个代码呢,可以是一个代码块。
13:17
可以是个代码块,如果是一句话呢,你就写到后边,如果是多个,你可以这样写。就是你可以写个代码框在里面就可以写很多啊,比如说我写两种吧,这个我写了一个代码块,下面是一句话,OK,好,还有第四,呃,这个就可以了啊,最后第四点就是个finally呢,也是最重要的执行代码。发力,最终要执行的,最后最终要执行的,好,同学们我们来跑一下,看看会出现一个什么情况,同学们看,我在这个可疑代码里面呢,用十除一个零编译器啊,知道这边肯定会抛一个异常,那么这个异常呢,会被它捕获到,捕获到以后呢,我这就输出了一句话啊,输出来一句话过后呢,这个代码就不会被终止了,大家看。
14:06
我在这写一个OK,继续执行。继续执行,我们看最后这个代码有没有被执行出来,好,请大家看我运行的效果。我运行过来过后呢,同学们可以看到,他说捕获到这个异常了。而且呢,Finally也被执行了,最后OK继续执行,所以说这个呢,就是我们死开里面的一个异常捕获的一段代码啊,大家一看呢,也很清晰,也很清晰,好把这个异常处理说完以后呢,我们来谈谈他的细节问题。好,关于这个SKY的异常处理呢,我大概总结了有这么五点,大家呢,No哈,我们学习基本都这个思路,先比较一下传统是怎么做的,然后呢,做一个基本介绍,然后QQ细节就可以,好,我们来看看斯开了,异常处理有这么几点需要大家,呃,有一个印象,我们将可疑代码封装在踹。
15:06
快,民众在踹开里面呢,用case来处理这个异常,注意啊,你不处理,你不处理这个程序就会异常中断,如果你处理了,那么程序就不会异常中断。其实我们处理这个异常最主要的目的能够保证我们程序在出了异常过后呢,仍然可以继续执行。但不会因为一个异常发生导致整个程序崩溃。它其实是它最主要的一个作用,第二点呢,同学们要注意,开了异常的工作机制跟Java一样,但是它取消了check,就是编译期的这种异常,即SC没有编译异常这个概念,所有的异常都是在运行时候捕获的。啊,有时候在编译时候,他不去管这些事了,不去管这些事了,他认为没有必要分什么编译啊,反正就是你出了问题,你觉得代码有问题,你就拆开去,你觉得没问题你就走,对吧,到时候你程序出了问题,你再把这个代码改一下就行。
16:06
所以他这个倒是一种很简洁明了的一种处理方案,所他他这做了一个改进,第五一点注意听使用关键字仍然是有的,那有些时候呢,我们在做这个业务逻辑的时候,我们。去自定义一个异常可不可以呢?也可以大家看,用肉关键字抛出一个异常对象,所有异常都是肉able的一个子类,待会呢,我们可以追一下源代码。Through表达式是有类型的,就是nothing啊,Through就是抛出,意义上是个nothing,因为nothing是所有子类子类型,所以我们可以把这个思路表达式写在任意的地方,为什么呢?因为你抛出一个异常,而这个异常的类型呢,又是个nothing,那就是意味着任何一个变量和函数都可以去接收和处理这个异常。好,我们写段代码还是老规矩啊,同学们,时间的关系呢,我就不再一步一步的敲了,我们把这个简单代码拿到我们这里来给做一个演示,我们这写个叫肉。
17:07
呃,这个测试。好,我们尽量把这个时间高效一点,肉啊肉的一个DEMODEMO,好的我们写到这来,各位同学。代码很简洁哦,完了怎么变成这个样子了啊,我稍稍的整理一下,同学们啊,稍等一下啊这个。可能这个格式当时没有处理好哈,当时没有处理好。好的,这样呢就可以了。好,我这里面写一个,呃,自定义的异常,比如说我自定义的自定义的一个异常。自定义啊,我的异常异常异常出现啊,比如说我写的这个异常出现啊,出现啊,不是出血异常出现。好,同学们,来我们看看,我们来玩一把这个吧,我们来玩一把这个,大家看到这里。我调用一个test。
18:01
那么这个test的呢?我在这里面什么都没干,我扔出了一个异常。那么这个异常呢,呃,其实这个异常就会因为你扔出去了嘛,所以说我在这个res呢就去,呃,相当于拿到这个你扔出去的异常了。拿到这个异常以后呢,我把这个异常的信息图示证打出来一下,就这么一个简单逻辑写一下。好,我们可以看到这里呢,往下走大家看异常出现了,那我问大家一个问题啊,同学们,我问大家一个问题,如果我扔出了一个异常,我我在这死肉掉一个异常,就是test,我死掉一个异常,然后呢,我这地方。打这个OK,请问。这个OK。有没有被输出。有没有被输出,同学们。啊,我们可以看到往下走。我们往下一看呢,我们发现这个地方根本就没有去输出这个。
19:00
为什么同学们?是不是因为你扔出去过后,这个地方并没有处理啊?你没有处理你,你你肯定人家不管,除非你怎么办,那因为你扔出了,那你要么你处理,要么你继续再扔出,是不是这个道理啊,你又没扔出,你又没有去补货,所以说这个代码就没法往下玩了,那你应该怎么办呢?针对这个代码,如果你认为这个test可能有异常,那么你就要去补货或者去使用,那你看我为了保证代码能处理,那么我的代码应该这样做一个改进。来,同学们请看我要这么做。呃,如果我们希望在这个test。Test抛,抛出异常后,抛出异常后代码可以,代码可以继续执行,继续执行则则我们需要需要处理这个异常。处理,那怎么处理呢?简单的很,就相当于说我们认为哈,我们认为这有一段代码很危险。
20:04
这段代码很危险,然后呢,我就开始。我就catch啊catch,那最后这个finally呢,你可以写也可以不写啊,啊catch finally里边写,在这边写一个case啊ex,比如说这我就随便写一个走,然后这方我们把这个异常抓到,我把这个异常打出来再看一下。那么你这个异常呢,我们这儿拿到这个异常收出来,因为你你这个异常到这儿就会被他捕获到,这个又是谁呢,就他。是不是他呀,肯定是他,那么既然如此,那么我们就看看这个异常是什么呢?我们得到了或者捕获到了一异常捕获。啊,或者叫补货。不火。捕获到一个异常,这个异常是什么呢?1.getmessage。Get message好,Finally呢,你也可以写一个,也可以不写啊,写一个空的在这吧。
21:01
我们看一下,这个时候我处理了,我为了在这个test的抛出异常以后可以继续执行,我用try catch这个机制对它进行处理了,那么我们看关键是看这里我们这个地方异常是不是拿到的。这个呃,你这写的这个异常啊,比如异常咱们给他编号NUMBER1。Number,好朋友们,我们来看下它执行的效果。走一个,走一个。好,我们可以看到,因为我去处理所有代码呢,OK是没有问题,继续执行的,而且呢,捕获到的异常就是刚才我们自己在这儿写的这个异常。那将来你就可以根据这个逻辑呢,呃,在你的代码里面去,比如说我们有一段代码,哎,跑出异常了,那假如我们要去处理,我们可以用try catch啊这样去处明,好的,这是我们写的关于这个实物表达式的一点说明啊,一点说明好同学们我们继续来玩下面第四一点,在SC中借用模式匹配的事项来做异常的匹配,因此catch代码块里面呢,是一系列的case子句来捕获匹配的。
22:15
啊,同学们可以从这也看出来,的确如此,比如说看到没有case,但他也可以写,写很多case啊,可以写很多case啊,它是用case来匹配的,还有一点呢,呃如果,呃如果有多行,我们也可以换行,比如说苏老师,我这里有好几行,怎么办呢?可以写换行,比如说你这写完了过后,你可以再写一点东西。好,叉叉叉,可以的,好,这是呃讲的这个第四一个,第五一个,注意听第五一个呢,异火补偿的机制和其他语言一一样,如果有异常发生,开始子句是按秩序来捕获的,因此开始子句中呢,越具体的异常应该靠前,越补普遍的异常应该靠后,也就是说范围小的往前面写,范围大的呢往后面写。
23:02
啊,那么如果把范围普遍的,就是范围大的异常写在前面,把具体的异常写在后面,看了呢,也不会报错。但是这样写是不好的编程风格,我举个例子就说开了,你把那个范围小的写,写到后面,他也不报错,但是呢,嗯,没有意义,你比如说老师在这儿再加一句话。再加一句话,Case。好,我认为这还有个异常数学啊,这个算术异常。对吧,我说我写一句话补货到了。捕获到啊,得到得到一个算术异常,一个算术异常。你看他也没有报错。其实你你这个地方是没有机会得到执行的,那他也没报错,你运行它也可以的,它也可以,你看他代码仍然是按照刚才那个流程来执行的,对吧?嗯,但是呢,你这样写没有什么太多的意义,太多意义,即使你这啊,比如说说老师你这不是说except刚匹配到他吗?你看我把它假设紊乱写,我就写一个啊,所以没几个啊,我这构建一个这样的这样这样的一层。
24:12
比算术一上。算术算术异常看好,你看我这扔的是一个算术异常,按理说其实它最好是用它来捕获,但是呢,因为你上面这个范围大,它仍然没有机会捕获到这,因为他匹配到一个,它就呃不再去匹配了,来再跑一个。好,同学们可以看到这次呢,我们符合的异常是什么呢?算数异常,你这个地方仍然是没有得到执行的,但是他也不报错啊,它也不报错,好知道这个逻辑就行了,同学们。这是我们讲的第五一个细节,第五个细节好了,我们再看第七个啊发组句呢,不管执行它执行,不管是正常处理还是异常处理都要执行,这点跟Java一样,所以说我们在开里面也经常会在这里面写上什么代码呢,就写上写上对这个踹里边的。
25:07
TRY这个代码块中的这个资源的分配,资源的分配,比如说呃,你们将来呃,再去做大数据处理的时候呢,可能是数据是从文件里面读取的一个大文件。哦,比方说你读取大文件,那么那个文件肯定要打开,有个文件的一个指针或者是引用,你在这边关闭,对吧,也有可能你将来这个数据是从一个数据库读取的,那么你要把一些资源的这个关闭啊,等等,缓存的清理啊,等等,你要在这个班里面进行一个处理好,这是同学们要注意的。第八一个同学们最后一句。第八,一个开提供了roses这个关键字来声明这个异常哦,可以使可以使用方法定义声明异常。它向调用者函数提供了此方法可能引发的异常信息,有助于调用函数处理,并将该代码包含在TRY中。
26:03
避免程序,它的目的是以避免程序异常终止,那么在试看中可用Rose注注释或者叫注解来解决这个问题。好了,我给他举第八一个案例啊,这个案例呢,叫Rose一个声明,那么把这个讲完,我们再做一个板书,好,同学们,我们再写一个小案例,Rose注解。来吧。20。这个common。Comment,好了,同学们看一下这个案例,走一个。好,呃,因为时间关系呢,这个代码我就给大家放过来就行了,非常的简单。写一写,大家以后看到这个不要觉得很奇怪啊,同学们看,我这里有一个总函数调用了F11,而这个F11呢?这个F11它在这里,我用那个注解去声明,将来可能抛出一个number for exception。啊,那这句话大家可能现在有点看不懂。
27:00
啊,这个地方你可以这么理解,这句话等同于我们Java里面的什么呢。这个Java里面的number for me class,其实就是获取这个类的信息,就告诉他我要抛出的这个异常,它是这个类型的。啊,这个类型你看我这故意写了一个ABC to,显然这个地方就会抛出number for异常,这个在前面我们讲过,好,我们来用一下,我们来用一下,你看这一执行。对吧,这样一执行呢,肯定就有一个异常抛出来看到就是这个。他说ABC有个异常,当然同样的道理啊,如果你要想这个程序继续执行,你在这地方呢,把它踹一下就可以了,就是以后看到这个呢,就是表示什么意思,表示别人声明了,说我这个F11就会抛一个异常啊,就会抛一个异常,好,这是我们讲的第八一个,第八一个好,同学们,那现在呢,我把异常的这个呃部分给大家进行一个板书,大家呢,简单的回忆一下,好,我们来讲卡的异常的处理。
28:07
好,我们刚才讲SKY异常讲了什么东西呢?首先我们举了一个撕开了异常的案例。这是我们讲的第一个案例,那这个案例呢,我们的代码是放在这里的。哎,就这么一个小案例,对吧,Try catch这些,哎,同学们一看,哎,也就很清楚了,就是开exception的一个DEMO,这写了个十,然后里面有代码,写的很精细。好,这是我们的第一个小案例。给大家放到这一栏。把这个案例讲完了以后呢,我们就给大家讲了SC异常里面需要注意的有那么几个细节,好把这个细节给同学们拿一下。啊,异常处理的八个点。好,总结一下异常处理的八个点来。第一个。
29:00
第一个呃,在SC里面呢,我们可以将可疑代码。大家看可以将可疑代码封装,封装在踹块里边去,哎,然后呢,用catch来进行补货,它主要的目的一旦你处理了,就开始处理程序,以后呢,程序将不会异常终止。这是它的一个主要的价值。第二点呢,在开里面,大家以后要记住开中没有这个所谓的编译器异常了,就它全部认为都是运行时发生的异常,好这是第二个,第三一个,第三一个呢,使用这个食肉这个关键字,可以抛出一个异常对象。那比如说我们在后面那个案例里面就会有说明,就是这这写的这个案例哪里呢,就这。就这个地方我们写了一个抛出异常对吧,诶这个呢,就是我把这个这一句话给大家拿到这里来。啊,拿到一。
30:00
给大家放到这儿吧。OK,来截取一个小小的代码。OK,那么第四一点呢,需要同学们有一个印象的是这里开里边呢,呃,它用的是模式匹配的方式来进行这个异常的啊,补货或者是处理。那在这里呢,我给大家写到这儿啊。呃,前面的代码也能看得出来啊,这写的前面案例可以看出的代码。对,那当然有一个问题了,苏老师这个模式匹配,呃,就这么一点东西吗?模式匹配后面我们还要详讲啊,就是后面还会详细的说模式匹配好,第五一个就是同学们要注意,就是尽量把在SC里面呢,我们尽量。叫做越具体的异常越写在前面,越普遍的异常写在后面。但是呢,嗯,就是呃,撕开了中,你反过来写也不会报错,但是风格怎么不推荐,就至少如果同学们看到一个面试题,别人故意把这个呃不,这个大的异常写在前面,把小的异常写在后面,你你也不要说人家写错了,只是这种风格呢。
31:13
啊不好啊不好,就是说在这里写SC把具体的啊,反之就说风格,要注意这个风格问题。好,我把这个呢,也给同学们写到这里啊,就是他反过来写的话,就做做这个处理,好,我们看第六一个,第六一个呢,就是finally那里仍然是经常用来做资源清理的一个工作。好,最后。啊,这是。这个是这个最后一个啊,这个是呃,SCSC呢,还可以通过这个食肉。把它抛出来啊,第五一个,第六一个好写到这儿,那么这个地方呢,我把它搬过来就行了。就这段话啊。这段话,诶,怎么少了一个呢?给123这个拿过来了。
32:00
呃,第四一个没粘过来吗。第四一个,第五一个,第六一个第七个,诶怎么少了一个感觉哈。I。啊,是不是排的有点问题是吧?啊排的有点问题。把这个放过来发一个。好,把这个拿过来就行了。好。好,我把这个呢给同学们板述到这啊,好像是有一个地方,待会我们再找一下,好同学们注意这个细节,那到此呢,这个异常,我们就先给同学们介绍这些,这是一段视频。
我来说两句