00:00
偶遇在交城。上次呢,我们踹了是吧,也except了,但他这个是什么意思呢?我们去游乐场观察一下,进游乐场喊救命,这回喊向向谁喊踹喊,但是踹啊,它是个关键字,用引号引起来,他就可以直接查到了。踹有什么细节呢?有两种形式,一种是表达式1,一种是表达式2,表达式1呀,出来一个东西,然后except except except之后呢,还可以跟一个else。还可以跟一个finally,这个是什么意思呢?它中括号的意思就是什么?就是Optional,就是可选的,那我们看看TRY的时候啊,如果发现了异常,就从这个踹里边立刻跳出来执行except的部分,这是我们上次见过了else呢,如果啊,这个。程序控制的流程,执行完了踹部分,然后没有任何的异常,那就会执行什么,就执行else,执行else,那我们试一下吧,踹的过程中一定会发生exception,这个exception就是VALUE6L,把ABC转成整数的时候,一定会发生值的错误,发生了这个错误进到第三行,正好是VALUE6ARROW,第4行进行处理,然后就会说exception is found是不是这结果呢?一回车确实是这个结果,那什么时候会进入elses子距呢?那么我们不要转化ABC了,转化一个什么呀?转化一个123,我们不转化ABC,转化123不会发生Y6L踹就一句话,执行完了是吧,没有发生任何异常,那就会进入什么,进入else,因为我执行完了,没发生任何异常,可不就进else嘛,输出了什么?输出纳斯星状,Else的意思呢?是没发现异常,任何异常的时候才执行的。
01:52
那都有什么样的异常类型呢?比如说你拿123去除以0,除数为0,这就是什么?这就是一种新的异常,叫zero division, 注意这个zero division首字母都是大写的,命名惯例叫什么呢?那名convention叫什么呢?叫帕斯卡case,帕斯卡case他抛出了这个异常,抛出了异常,但是如果没捕获这个异常会发生什么呢?
02:20
也就是说我们在这块加一句话是什么呢?这等于I÷0,第二句它一定会有一个小错误,这个小错误呢,就是zero division errorrrow, 那第4句我抓的异常是谁啊,是value errorrrow, 没抓住这个zero division errorrrow, 对于这个zero division errorr没有相应的处理,那怎么办?会发生什么,会发生什么呢?他他没有相应的处理,就怎么样,就把这个异常又抛给系统了,然后他告诉就就像我们没有踹一样。是吧,因为我们踹了,但是踹的不是那个地儿,那怎么办呢?哎,就就像没有踹一样,那我怎么样才能保证踹到那个地儿上呢?哎,那你就得踹的准呢是吧?哎,那怎么踹的准,双引号加号P,这个时候我们可以看到第7行和第8行加了两行,它就针对这个zero division arrow踹到地儿上了,踹准了踹的是什么呢?哎,结果呢,我们就会把这个东西输出出上来,你看这回呢,就直接报的是什么,报的这个异常错误就是对他进行处理,而不是像上次这样把东西抛给系统了是吧?各有各的错,各有各的处理,那调试一下这过程呗,上来呢,我先看看我在哪儿呢?我现在在第一行对吧?运行第二行是吧?第二行执行完了,该第三行了,第三行一执行出现什么?出现了一个zero division l, 那他就不会往下执行了。第4。
03:54
然后不执行了,你看我现在跑哪儿了?第4行本来要执行一个什么this lines never ex excusete, 就是他不会被执行到直接怎么样它进这个except找arrow了,除以0啊,123÷0是不是一个value arrow呢?他一判断不是value arrow, 然后就跑到第7行,它是不是zero division arrow啊,它是zero division arrow, 然后就怎么样就进到这个相应的处理部分了,不是缩进进去的吗?就进行处理,处理怎么样输出这个东西,你看输出了之后,然后返回,这就是处理过程,如果遇到这个错误了,就怎么样呢?就短路了,比如说我VALUE6LROW遇到了,那我就走VALUE6L的流程,如果我l very errorrrow没遇到,就就往下继续找,为什么要这么挨个的错误检查,这是没事儿找事儿吗?不是异常,随时可能发生。
04:54
啊,比如说你要打开个文件,文件不存在,或者网址断网了,数据库服务关闭了,都有可能什么事儿都会发生,但是呢,你要有相应的预案才能够放心,如果没有预案就会怎么样,比如说这个东西,我呢,在这个基础上,我我又加了一行,是什么呢?是A,这个A是什么呀,上来就出现1A,没声明也没赋值。
05:22
就是什么,就是内马对不对,哎,那么它执行过程是什么?直接报错了,哎,他直接报错,但是他其实也经历了这个踹的过程,你看踹之后进来,然后进来AA怎么样,内埋肉,内埋肉之后底下还有好几行呢,都怎么样,都跳过,都不执行,直接切到哪儿,直接切到这个第6行,直接切到第6行了,第6行是不是不是,第第8行是不是也不是,对不对,也不是,不是怎么办呢?他不是就没法处理,他也进不了else,因为没毛病才进else,现在呢,他就是return了,Return了之后,整个这个执行完了之后,再怎么样,再把这个东西抛回到系统,由系统再处理吧,是吧,把这问题反正就交给系统了,那么我们这回呢,是了解了三个关键词,Try except和else,哎,每个都是冒号。
06:22
加上。缩进进行处理,那错误类型太多了,有没有那种通用的错误类型可以兜住所有的错误呢?我们下次再说,OEZ加枪。
我来说两句