00:01
嗯,好了同学们,那咱们接下来就来看一看,我们这个在我们Java语言当中这个异常啊,这块我们一直在学的是什么呀,学的是我们这个散公司,他写的这些异常是不是那么异常这个东西咱们能不能去自定义呢?对吧,就是我们能不能自定义异常,就是我们自己定义一个异常类。行不行的,这个是可以的,我们来模拟一下,模拟一下这个散公司的这个异常类是怎么定义的,好吧,比如说我们随便找一个啊,叫做那pointer exception,我们看看这个类。好,大家看这个异常类写起来很简单,它聚成一个runtime exception,然后写一个无参构造,写一个有参构造,你看一个是嗯,无参数的构造方法,一个是有参数的构造方法,里边跟一个什么?String吧,然后这是super括号,是不是调类的构造方法吧?对吧。好,那么先听课啊,先听课来这块呢,还有一个呢,叫做什么class cast exception是类型转换异常,那么类型转换异常也继承runtime exception,大家看这里是不是有一个无参数的构造方法,是不是也有一个有参数的构造方法呀。
01:08
是不是啊,哎,我们再找一个啊,叫做file not found exception,我们来看看这个异常类,发现这个类呢,它继承IO exception,它的构造方法是一个是无参的,一个是有参的,哎,所以这些异常啊,它都有共同的特点,那么这个时候我们能不能自已定义一个异常呢?自定义异常行不行呢?来我们这样啊,新建一个class,我们的class叫my exception。散公司写的异常肯定是不够我们用的对吧?啊就是说散。提供的JDK内置的异常啊,肯定是不够用的啊,在实际的开发中有很多业务,这些业务出现异常之后啊,JDK中都是没有的。啊,和业务挂钩的。
02:02
那么异常类我们程序员可以自己定义吗?答案当然是可以的啊,可以的啊,这是第一点,那么第二点我想说的是Java中怎么去自定义异常呢?Java中怎么自定义异常呢?这怎么自定义呢,两步各位啊,两步骤两步啊,第一步编写一个类继承什么呀,Exception或者run time exception啊这就是第一步,第二步呢,第二步是提供两个构造方法,一个无参数的,一个带有string参数的,这就行了,你只要听话就可以,你让这个类呢去继承谁啊,哎,Exception,那就表示你是编译时异常对吧?哎,编译时异常,如果说你写了一个这个class去继承谁啊,Run time exception,那么这个时候我们就认为是一个什么呀,叫做运行时异常啊运行时异常对你看你怎么做啊怎么做,那么如果你是采用这种方式,我说了你就是运行时采用上面就是编译时,那有同学老师,我以后是继承这个还是继承这个,那你你看情况啊,如果说将来这个异常发生概率。
03:24
比较高,那么这个时候你定义成编译是异常,如果说你是呃发生概率比较低,你就定义成什么呀,哎,运行是异常,这样去去定啊,你继成这个也行,继成这个也行,总之里边写两个构造方法,一个构造方法是无参的,你看这是无参的,是不是再写一个构造方法呀,它是有参数的,跟string类型参数super括号S就完事了啊就这样写就完事。这个可以了。啊,对不对,哎,可以了,你看很简单吧,是不是很简单呀,这样自定义异常怎么用,我们还没有用啊,接下来我们尝试一下看行不行,Class,我们叫exception test15,那接下来呢,在这里呢,我们尝试着用一下来,My exception exception new my exception my exception,然后写上啊,比如说用户名不能为空,对吧?哎,就这简单这么写啊,然后呢,我们呃,打印。
04:23
异常堆栈信息啊,我们获取异常简单描述信息,简单描述信息来我们都可以打印是不是,哎,你看这不是那个创建异常对象吗?对不对,创建异常对象啊,只不过我这里没抛出啊,我这里没抛出。只拗了对象,没有抛出啊,没有抛出异常,各位。呃,只是。只。拗了,异常对象并没有抛出啊啊,没有手动抛出啊。
05:09
那么这块呢,我们打印异常信息,你看能不能打印来走一个。异常对象princess,你看。是不是,这是我们自己定义的吧,哎,你看这是不是异常信息啊,哎,我们还可以调方法叫什呀,Get什么呀,Message这个方法来获取什么,哎,这个消息你将来在这个地方传的这个字符串是吧,你这就能拿到。对不对,输出一下,你看来执行一下,嗯。来我们看最后这个,你看用户名不能没空。是不是,哎,这就是我们自定义的异常啊,很简单,继承我们的exception,然后写两个构造方法,一个无参数的,一个有参数,写上去就行,你不用管为啥?你不用管为啥各位你只要死记硬背啊,实现一常死记硬背,死记硬背就行了,死记硬背两步啊,第一步继承exception,或者继承run time exception,然后写两构造方法,一个无参,一个有参,有的老师为啥这样做?因为灵感来自于散公司。
06:10
大家看exception是不是写了一个无餐的,一个有餐的,Class exception是不是一个无餐的,一个有餐的,然后none po空值异常是不是一个无餐的,一个有餐的,对吧?我们照葫芦画瓢,我们自己写了一个my exception继承except写两构造方法,一个无餐的,一个有餐的是不是?哎,我们给它写上去就完事了,那么这个异常能不能用,不能我们拗一个对不对?哎,打印异常信息对吧?包括我们异常的简单描述信息,这都是没问题的,你看运行一下。啊,自定义异常首先大家要会啊,要会好,这个我就说到这儿,在Java圆中自定义异常就两步啊,继承exception或者runtime exception写两构造方法,一个无餐,一个有餐啊就完事。
我来说两句