00:00
五中之前用过吗?这个十大羊毛用过没用没用过。咱们程序员需要会画这个东西吗?啊,画的都差不多来行。哦,电气图啊,哎呀,行行行行,咱们一块看看吧,啊哦,电气图明明白明白明白,Arithatic exception呢?它这个负类是谁?我们找一下啊,它的负类是runtime runtime的负类是exception except负类是up的类是object是不是?啊,威尔。微瘦那是微软的啊,微瘦是微软的。微软的微主要是画流程图的啊,流程图来老祖宗是还是object下面有个子类叫是不是画吧,累啊点一下。这是一个类吧。这应该是一个类哈,来这个类名我们叫什么?叫object。
01:00
行吧,那object这个下边呢,有一个子类对吧,这个子类是谁呀?叫做able。是不是,那么这个类呢,和上面这个类呢,它的关系属于什么呀?继承关系,那么继承关系是谁呢?是这个啊。是这个。明白吧,啊,就是空心箭头指向负,实现空心箭头指向,这就属于继承。这就属于继承,各位啊,继承。那么sable下边呢,有什么呢?我们可以看一下啊,这个JDK的文档当中,Sable下边呢,它有一个,哎。两个子类。大一点一个子类叫A一个叫exception,看见了没有?Error是Java包下的error,看见没?啊,还有一个是什么呀,叫叫exception,那么这两个呢,我们在这儿画一下啊,它下边有两个孩子。啊,哪两个孩子呢,一个是我们的,叫做era。
02:06
嗯。哎。是这样吗?ERROR。我在电脑上看直播声音。哎,咱们别的同学有声音吗?你那个没声音。啊。来,那么这个艾特的父类是谁呢?哎?这个啊,福利是,然后呢,它呢,除这个之外啊,我们。
03:03
大家看一下,看一下右边。这应该是那个图吧。是吧,啊,应该是这个图啊。你看。是不是?这个图啊,然后呢,A再往下的话,我们这个so还有一个子类,这个子类叫什么呀,叫做exception。听课了啊,听课了。听课了啊,然后呢,它的这个类是。然后呢,我们再往下呢,还有一个什么呢?哎,注意了啊,再往下。这个艾下呀,有很多子类,我们可以看看艾下是什么子类。来我们点一下啊,这个艾现在有很多直接的子类。嗯,你看看是吧,有虚拟机的错误,你看。
04:04
是不是啊,这是不是虚拟机的错误啊?对吧,啊,还有县城死死了吧。是不是还有IO错误吧,是不是,哎,我们可以看几个啊,就这叫虚拟机的错误。这是一个类,应该是一个类吧,点过去。啊,是个class啊。了解一下在这个图上。来点一下class。虚拟机的错误。他的是谁呀?是A。啊,然后呢,除这个之外呢,它还有什么错误呢。IO错误,你看。是不是有IO错误啊,也是类啊IO错误。那么这个IO错误,它的负类是谁呀?哎,是他。啊,然后呢。我们再来看啊。
05:01
嗯。呀。什么情况?好,那么这个IO错误下边还有什么呢?你可以往下深挖一下,比如点一下IO错误。是吧,哎哎哟,他已经没有了。没有再往下的子类了,虚拟机的错误呢?虚拟机的错误,咱们看看这个地方叫out of memory。Overflow,看这个这个好像似曾相识啊。这个在哪见过呀?这是虚拟机的错误,你看stack overflow error在哪见过,还有还有印象吗?属于虚拟机的错误啊。应该有印象吧。地里边是不是见过呀?递归里边见过呀,是吧?哎,最上面object往下throwable,然后再往下是error,再往下是哎,Error和这个except这两个是哎,同级的,然后error下面有个虚拟机的area啊,IO area啊,Sta overflow area啊是不是哎。
06:09
那么大家要注意啊,要注意。这个艾若呢,一旦发生之后是不可处理的。就是整个这个分支下面所有的东西,只要他一发生Java程序只有一个结果就是退出。啊,就是退出啊退出然后呢,我们这个exception这块都是可以处理的,但是你要知道不管是error还是exception,它两个都是可抛出的。对于虚拟机来说,但是都是可抛出的throwable可抛出的,各位啊,可抛出的。那么这块呢,我想加一个注释,各位啊,大家看看这里面注释是哪个,怎么加注释。这里有吗?因为之前想往这儿写注释的时候是有注释的。看看啊,这里有没有注释。
07:05
能不能写注释这个东西。瑞Rose可以可以写注释的啊,这一块大家找一找啊,因为我也是第一次用这个东西啊,咱们找一下。找一下哪个像是写注释的啊。这个应该不是,这是package class接口,枚举exception异常port。怕。下面都是关系。再往下link。不是啊。怎么这?嗯,看看找找,想往这写个注释啊。Format。I。加了。
08:00
代码。哎呀,这会儿不太好找,是不是不太好找啊。有一个办法,咱们这样搜一下啊,看上面的图标。嗯,这些图标都不像,我看了一下都不像,不不是特别特别像啊,这样啊,咱们搜一下搜一下找找。呃,怎么去写注释啊。来看一下啊这个工具。没事,用一下新的也行啊,左上角two box有一个annotation的工具。Annotation的工具栏,这个就是注释的工具栏。呃,Tooth有一个annotation。嗯。
09:01
Annotation。哦哦哦,在这呢。Two box。哦,在这呢。嗯,找到了,找到了找到了啊,这个地方啊,好隐蔽。好隐蔽啊,来。这边咱们写个注释啊。能能能写注释吗。来这块咱们咱们写一下啊,写一下就所有的。不管是错误还是什么呀,我们的异常都是可什么抛出的?都是可抛出的啊。啊,都是可抛出的啊,这个我想给它关联上,怎么关联呢。嗯,这样行吗?
10:11
能不能关联上?先这么着吧,行吧,哎,不管是错误还是异常,都是可抛出的,各位啊,哎哟,这个跟Rose Rose真不一样啊,不一样来这一块呢,我们也想加一个这个注释信息啊,这个注释信息呢,我这样写一下,大家注意看啊,所有的错误,所有的错误只要发生。啊,所有的错误只要发生,Java程序只有一个结果。啊,那就是终止程序的执行。啊,退出GVM,退出GVM啊。来。这一点。
11:04
往这一点啊。错误是不能处理的。错误是不能处理的。啊,这是说的这个error各位啊,那error下面有很多子类,我就不在这儿说了,这个咱们就不用研究了啊,因为你也没辙,像这个我们的虚拟机的错误,像占内存溢出错误,内存方面出了问题,那肯定就是Java程序就执行结束了,是不是啊,加程序执行结束了啊,那么exception这个分支我们往这拖一下啊,往这拖一下。Exception这块它又有什么呢?哎,来看一下啊,从继承结构上我们找找able下边有一个error,有一个exception点过去exception大家看exception有很多之类。对不对,有很多子类是吧?哎,那注意了啊,Except现有两个分支。我直接写了,各位啊,别看它有这么多,实际上它只有两个分支。
12:02
哪两个分支呢,来我们点一下,其中呢,有一个叫什么呀,叫做。往上一点啊。来,那么这块的话,咱们有一个什么呢,叫做runtime。Exception runtime。这种。各位日来点。然后呢?它还有什么呀,叫exception的子类。各接。直接子类。Sub class。Class。这不是一个类名,各位啊,这不是一个类名。
13:02
这是大概呢,就是写这叫exception的子类嘛,Except直接子类啊来连上去。注释来加一个注释。这边表示表示exception的直接类。这个啊。好了,那么这个呢。叫做runtime exception runtime exception下边还有很多很多子类。啊,很多子类。那么这个runtime exception下面有哪些词类呢?就像大家遇见的na pointer exception。我随便随便在这。画了各位来,比如说有一个类叫什么呀,叫做。Nine pointer exception。为什么一切换大小写就不行exception?啊。然后呢,还有除了这个none pointer exception之外,还有一些别的,比如说class。
14:06
Cast。Exception。来。啊,还有我们接触的什么异常啊,比如说像做。Number。Format exception。嗯。工具不行,不太好用,免费的就是不行啊。Number format。你看一切换大小写就出问题,这切个大血出啥问题?At表示数字格式异常。像这些都属于什么呀,运行式异常,我们可以看看集成结构啊,找一找这个叫做。
15:03
Java浪包下的是吧,然后找找谁呢?找找我们刚才所说的这个exception啊,随便我们找点过去一个它的fleable是吧?下面有I exception吧,Exception下面找一找这个ER开始的runtimeion在什么地方,那runtime在这呢?Runtimeion呢,这边呢有很多子类是不是?哎,大家看看这里子类有没有叫做non point exception有吧,Arithme数学异常,空值异常是不是?哎,那另外呢,我们有没有一个class exception,你看class exception是不是类型转换异常啊。是不是,哎,有没有这个。Illegal应该是有这个illegal啊,Illegal你看这个是class类型转换异常啊,下边这个呢,是illegal无效参数异常,无效参数异常,下边你看它有没有有没有子类。它的子类是谁呢?A number format exception是不是,所以它里边有很多很多继承结构啊,那这样我们拿过来啊,在这呢,我们再画一个类,它的关系是这样一个关系。
16:07
是这样一个关系,实际上它是在下边一层的。对吧,哎,然后呢,我们用这个实现空心箭头指向负。来,再来一个。来,再来一个。来这边再来一个是这样的一个关系。那。对吧?啊,就是上面object through可抛出的error不能处理就不用管了,Exception是可以处理的,那exception下面分两个分支,一个分支是exception所有的直接子类,还有一个叫是run time exception section下面还有可能。很多子类是吧,那么大家注意啊注意。注意什么呢?就是runtime exception啊。它在Java语言中被称为什么呀?哎,主来了啊。注意啊。
17:02
都被称为。运行时异常。所有的啊,Runtime exception。及此类都属于什么呢?哎,运行时异常。明白吗?哎,都属于运行式异常。那么这一块呢,我们叫什么呀?叫编译时异常,所有exception的直接子类。啊,在这写上。所有。对,编译是异常啊,所有exception的直接子类。都叫做什么呢?编译时异常。编译是异常。一个是什么呢?是运行时异常,一个是编译时异常啊,大家注意。
18:03
你下一周愿意画这个图,你就画一画,不愿意画无所谓啊,不愿意画无所谓。嗯,这个不是重点啊,因为以后大家也不会画这些东西啊,但是有的时候可能需要看一看这些图对吧,看这些图的话,那可能就是说你只要能看懂就行了啊,没事儿,咱们现在最起码能看懂这是一个什么呀,累吧。是不是?箭头空心的这种空心箭头指向负的这种情况都是属于什么呀?哎属于继承是不是,哎属于继承啊。那么咱们再接着往下啊,刚才说了两个概念,一个概念是什么叫做运行是异常,一个概念是什么叫做哎编译时异常是不是哎编译时异常,那么编译时异常是在编译阶段发生的吗?这里有个有一个问题。对吧,编译时异常。是在编译阶段发生的吗?不是各位啊,不是编译时异常,是在编译阶段必须对这种异常进行提前的处理。
19:05
啊,编译时异常是表示什么呢?是表示必须在编写程序的时候。预先对这种对这种异常进行处理,如果不处理。啊,如果不处理编译器报错。明白吗?运行是异常编译阶段,可以选择处理,也可以不处理。啊,运行时异常。运行时异常。在编写程序阶段。你可以选择处理,也可以怎么着不处理。可以不处理,那么这就是我们这个运行时异常和我们编译时异常的一个区别,各位。
20:06
我保存一下啊,它会生成一个点UML文件,是不是我们放到什么地方呢?放到这个D盘Co,然后呢,我们零二加YSE到Q的下边吧。放哪了?嗯。课堂笔记。课堂画图课堂笔记里边吧,放这儿吧,啊,这个我们叫做异常的继承什么结构图。各位啊,这个保存了一下,保存了一下,那应该是以后可以直接双击用它打开啊,应该是没问题的,在这个D盘下cos,然后有一个零二加YC。记。然后这边有个异常的集成结构图,应该使用这个小星星是吧,叫star u,可以双击打开的啊,可以打开的。来了解一下这么一个工具啊,只是一个工具罢聊啊,玩一玩就会了啊,玩一玩就会了行吧,那这块的话主要是。
21:06
要知道咱们的异常一个继承结构,我再说一下啊,最顶部是object下有表示可出的,分两个分支,一个分支是表示不可处理,表示可以处理,那么exception这块又分为两个分支,一个分支时运行时异常,一个分支是什么呀?编译时异常编译时异常并不是发生在编译阶段,记住啊,所有异常都是发生在什么呀。哎,运行阶段的大家还记不记得我们异常只要发生就得逆对象,还记得吧。只要异常发生视频研究对象啊。那么扭对象编译阶段能扭对象吗?扭不了啊,所以所有的异常都是发生在运行阶段的,那编译时异常是因为什么得名叫编译时呢?是因为这种异常啊,它必须在编写程序阶段对它进行预先的一个处理,如果不处理的话,编译器会报错,因此而得名叫编译时异常啊runtime什么叫运行异常,你可以在编译程序的时候处理,也可以选择不处理啊,都可以啊,都可以好了,那么这块呢,我们再来总结总结啊。
22:08
嗯。Object object下有谁?RO是不是?哎,RO表示什么呀?可抛出的啊,可抛出的able下有两个分支啊,Error和谁对不对,是怎么回事?是不可处理啊,不可处理直接出GM是可处理的。exception下呢?有下有两个分支,各位啊,一个分支是什么呢?叫做哎编译时exception啊,叫exception的直接子类啊,直接子类叫编译时异常啊编译时异常还有一个叫做run time exception啊,Runtime exception属于什么呀?运行时异常啊,运行异常,那么编译时异常这一块。
23:09
要求什么呀,程序员在编写程序阶段啊,必须。哎,预先对这些异常进行处理,如果不处理,编译器报错啊,因此异常啊,异常啊,在编写程序阶段,程序员可以预先处理,也可以不管。
我来说两句