00:00
其实还是现在阶段呢,就是把基础语法掌握了。啊,就是呃,你写一个程序呢,最起码你的程序能编译通过吧。大家现在主要学的是什么?不就是语法吗?对吧,更深层次的这种啊,可能现在还是比较费劲的啊,比较费劲的慢慢来啊,慢慢来对就是说你现在要做的就是就是什么呢?哎,先让什么呀,先让代码能编译通过。明白吧,哎,编译不能过,你得用throws,或者说编译不能过,你得用什么呀?哎,Try catch对吧,至于说throws和try catch这两个,先选哪个后选哪个这个东西。呃,咱们还得还得再去,我们选哪一个是吧,最后还得自己去不断的积累项目啊,积累项目之后才才能能够真正的去理解或者是领会啊领会。好了,那么异常这块咱们还有哪些内容呢?我们今天下午呢,就把这个异常这块结束了,各位啊,咱们来看一下。
01:02
看一下什么呢?看一下异常这块有两个方法,所有的异常对象都有两个方法,一个叫get message,一个叫print sta trains啊,Get message和print trains啊,这两个方法来咱们看一下。来,我们从这呢去。创建一个class,这个class我们叫exception test08啊零八。来PSVM走我们这边呢,重点说一下异常,异常对象有两个什么呀,非常重要的方法,各位啊,嗯,Exception有个方法叫get这个方法。啊,Get message这个方法,它还有一个方法叫ion stas啊这个方法。啊,打印这个呢,是获取第一个啊是获取什么呀,异常简单的什么描述信息。
02:02
啊,这个方法,那么下边这个方法是打印什么呀?来打印啊,打印异常追踪的堆栈信息啊,打印异常追踪的堆战信息,那么这两个方法我们都来演示一下各位啊来,比如说我们这里有一个什么叫做呃,Non pointer exception,这是个异常对象是不是?然后我们在这里拗一下,拗一个none。Pointer exception,然后大家看这个构造方法啊,我们的non pointer exception这个类是不是有无参构造,也有有参数的构造方法呀,我们在这呢,给它传一个字符串进去,来我们写上啊,比说空指针什么呀,哎,异常,那么这个时候呢,我异调get message这个方法,大家看异常E对象是不是调get method这个方法可以返回一个字符串是吧?好,那么这个字符串呢,就是我们异常的一个简单的描述信息啊,描述信息来。走一个。好,大家看这里是不是输入空指针异常啊,哎,空值异常这个E的get message得的实际上是构造方法传进去的字符串,明白吧,是这个构造方法传进去的这个字符串,各位啊,这里六了个异常对象,会不会被当做异常对象中断处理?不会啊,这是普通加号对象啊。
03:17
你没抛啊?你扭了个异常,你没抛啊,你抛了吗?你好了吗?你没好。明白吧,小胖,你拗了一场电,你抛了吗?你没抛啊,你没看人家这个叫fire。Not found exception。你看这个啊,不不不应该看这个啊,应该看哪个呢。应该看fire input stream。对。这个file input stream这个构造方法,这是不是抛了呀,你new异常是不是前面个啊。对吧,你没事儿啊,这个不会中断程序啊。
04:00
这是new了一个异常,并没有抛,所以这个程序不会中断啊。啊,这里只是为了测试什么呀,Get message方法啊和print stack trains这个方法。啊,这里只是new了异常对象啊,但是没有将异常对象抛出啊,没有将异常对象抛出啊,GM会认为什么呀?会认为这是一个普通的加法对象,这就是一个普通加法对象啊。这是个普通的加入对象啊,来这个方法就是来获取什么,我主要是为了讲异常对象啊,它有一个方法叫get message。主要是讲这个啊,来获取什么呀,来一场简单描述信息,这个信息实际上就是构造方法上面的什么。参数啊,这个信息实际上就是构造方法传进去的这个参数,来走走走走走走是吧,你传这么一个字符串进去,你看他调get message这个方法拿到的是不是就是这个信息,来咱们看一下啊。
05:13
来。好,你看是不是,哎,拿到就是这个信息啊,对不对,哎,拿到就是这个信息啊好了,那么接下来我们再往下另外一个方法,打印什么呀,异常对战信息,打印异常对战信息是1.printstatrains,这就是打印异常信息啊来这个异常没有发生啊,没有发生只是说我们想测试一下啊,Hello word。这个hello word不耽误执行啊,这只是普通对象你了调普通方法,调普通方法啊,这是打印异常对战信息的啊,来,这个hello word是正常可以执行的啊。好,大家看这就是那个异常信息。来,再来一次。嗯。对吧,再来一次。
06:00
是吧,再来一次。老师这个hello word怎么在这个上边。这个hello word怎么到了这个信息上面,注意啊,打印异常信息,实际上底层它有个线程,是专门负责这件事情的。注意啊,打印异常对战信息实际上是后台有一个线程,是专门负责这件事情事情的啊。所以现在呢,实际上是有两个线程,一个线程负责打印异常信息,一个线程负责输出hello word,所以导致呢,输出这个结果有点颠倒。那不一定一直是这个结果啊,你再运行,你再运行有可能是hello word就变就就到就到下边了,嗯。那点一下。嗯。给个循环。Int I等于零,I小于。1000加加。嗯,别输出了,我看这次是个什么情况啊。
07:00
Hello,会不会在下边儿。来。太短了。啊,这个位置呢,我输出一个,哎。对吧。找一个啊。大家看这个异常信息是不是在上面啊,诶诶诶诶,控制的异常你看到这儿了看。是吧,哎,实际上是后台有个线程啊,是专门负责输出异常信息的,异常的追踪信息是用异步的方式输出的,有同学就蒙老师,啥是异步的方式,没事儿啊,咱后期学了多线程你就知道了啊。学了多成绩就就知道了,现在先不用管它啊,就是这个是打印异常对战信息的,实际上后台后台啊,Java的后台,Java的后台。打印异常堆栈追踪信息的时候。追踪。信息的时候啊,呃,采用了异步线程的方式啊,异步线程的方式。
08:05
打在。那。是吧,这个是打印异常对段信息的啊,这个异常并没有发生,只是new了,没有抛啊调get message来得到这个构造方法的这个字符串信息,然后在下边儿呢,哎,我们怎么着啊,哎,在这里打印异常信息啊,你再看一眼瞅一眼啊。嗯。来看看这个打印信息在哪,在哪打印呢。诶,在这。对吧,这打印出来这么一个信息。这就是异常追单追踪对战信息啊,点过去。对吧,哎,说你这。对吧,哎,有问题有问题怎么着怎么着的啊。这不是出异常了,各位啊,这只是调了这个print stack方法打印的异常信息,这并并不代表它发生的异常。啊,他要真正发生异常,下边代码是不会执行的。
09:01
对吧,什么叫抛异常,各位就把异常扭出来,你throw关键字不是不是思啊,是throw,诶这个就异常就抛出去了,各位啊,但你这手动抛异常就会影响你这边的程序执行,你这边程序是执行不到的,所以编译就报错了,你看。是吧,这个还没讲啊,还没讲,我们现在只是讲了一个throw,它的意思是干啥的,就是手动抛异常的。这个就是手动往外扔异常,就这意思啊,扔手雷走走你啊。好了,那这个呢,主要是两个方法啊,两个方法,那么有的同学说老师咱们以后用这个方法还是用这个方法,哪个用的比较多一些,这两个用的都比较多啊,都比较多,我这样我再写个例子,再去演示一下这样方法行吧。
我来说两句