00:00
大家好,我是海波老师,我们继续给大家讲解Java面向对象的语法,我们之前学习异常的时候啊,我们都是用别人的方法,别人的方法会抛出异常,我们要对这个异常做处理,对不对?那如果咱们的程序出现异常了,别人怎么能够知道呢?所以我们这里呢,来拷贝一个新的,我们写上一个零八。点击OK,然后呢,我们把这个地方全删掉。删掉以后,把它咱们也删掉,什么意思啊,就是说我现在准备一个我们自己的类,咱们叫U,我们的八,然后呢,写个括号,我写一个方法叫做word,我叫test,好了写完之后呢,你现在呢,把我们这样写成一个int,我们叫做I,再来一个int勾,你给我传过来,传过来以后我这里直接打印,我们叫做I,我再除以一个勾,就那么简单,我就想做这个计算,就是一个除法计算。那么好了,那么现在呢,别人想调我这个方法怎么调呢?诶直接来我们写上它,我们来U8,然后U等于new u好了,写完了以后,现在呢,u.test这个时候你需要给我准备两个参数了,好,我写上一个叫int I,它等于十,一个叫int勾,它等于零,然后呢,在我的这个地方,我就写上它,我叫做I,我再写上一个勾就可以了,就这么简单,好,我运行一下,不用说了,咱们这么运行肯定会出现异常嘛。
01:23
这个异常呢,其实就是很简单的一个除数为零的算术异常没问题吧?同学们对吧?好,我想说的是,如果你这个方法要抛异常没问题,为啥呢?我没有做任何的判断,何任何的处理吗?可是如果我抛异常,我是不是应该告别人一声啊,也就意味着你调用我的功能,我应该告诉你我这个方法可能会有什么样的问题,你要碰见这个问题,你得去处理吧,对不对?同学们,所以也就意味着我们怎么去做到这一点呢?这里给大家解释一下来。如果方法中它可能会出现问题。
02:02
那么我们需要。提前声明。告诉其他人。我的方法他可能会出问题。对吧,那好,我们这里需要。此时需要使用关键字,我们叫Rose。什么意思啊,在我们方法的后面,我们要添加一个我们的关键字叫throws,这个关键字就是告诉你我当前这个方法可能会有什么样的异常被抛出来,来我们写上我们的这个数学异常,诶,你这么写就行了,你这么写完了以后,那么我在调用这个方法的时候,他就知道,哦,我当天有这个异常不就行了吗?对不对。他当我出现这个异常的时候呢,他就可以进行相应的判断了,所以他就可以加我们的try cat,或者他不加也行,他不加呢,就意味着他不处理了,谁来调用这个方法,谁来处理,所以大家会发现我的这个地方就有一个叫throws exception。哎,就这意思,哎老师呀,那如果你要不加怎么办?你不加会发现也没有任何的问题,为什么没有任何的问题啊,同学们,很简单,是因为我们当前的这个异常,我们称之为叫运行其异常,那么咱们讲过呀,运行其异常我们的编译器是不会提示你的,就意味着你如果出现错误的话,你直接改了就完事了,哎老师,那不行啊,我们现在希望我们抛一个异常,能够提醒他,告诉你你要对这个做处理,那所以这个时候你就不能抛出我们的运行异常了,怎么办?我就需要把这个异常我转换一下,所以呢,我就写上一个TRY。
03:34
然后呢,加上一个catch,然后把这个拿过来,我把这个异常呢,我给它放到这里来,然后写上一个E好了,写完了以后把这个代码放进去,这个时候同学们记住了,我要抛出一个新的异常,诶不要让我的Java虚拟机自动抛出了,要我手动抛出,所以我们接着写一下,补充一下。如果我们的程序中,它需要手动抛出异常对象。
04:04
那么我们需要啊,使用叫肉关键字。然后。谬出异常对象。所以啊,咱们这个地方就比较特殊了,干嘛呀,我要new一个,我们叫exception I,我得这么写了,你这么写了以后,你会发现报错了,报错的原因是因为你抛出去,但是这个方法并没有抛,他们不匹配了,怎么办?你需要把这个异常你放到这里,你放到这里以后你就会发现,诶,这个不就可以了吗?对不对?好,大家会发现我们当前的test就会有提示了,它会提示你当前的这个异常,如果你不处理的话,可能会有风险,可能会有问题,所以说要么你家TRY开,要么你把它抛给别人,谁调用你这个方法,你抛给谁就可以了。所以我在这我写个roses,我们的exception没有任何问题,或者呢,你在这我加上一个TRY,我们给它来写上一个catch,其实也没有任何的问题,反正呢,我们就是把它处理完了,那其实就够了,所以我写上它叫做exception,我这里呢就打印它就可以了。
05:07
好了,那我现在呢,就直接运行一下,它肯定会出现我们的异常嘛,所以我们这里就会发现没有任何的问题,然后呢,他报的异常是exception,已经不再是咱们之前的除数为零的算术异常了,因为我把它转成了一个新的异常,对吧,这就是我们异常处理当中的一个抛出的概念,好了同学们,我们这个就讲到这。
我来说两句