系列文章目录
文章目录
前言
面试题,列出至少5个平时见过的异常类型,以及声明情况下会发生这个异常,如何处理,这道题你会吗?
先来聊聊系统预定义异常吧
例如:
ArrayIndexOutOfBoundsException
ClassCastException (当试图将对象强制转换为不是实例的子类时,抛出该异常)
NullPointerException
ArithmeticException (算术运算异常)
InputMisMatchException
IllegalAugumentException (此异常表明bai向方法传递了一个不合法或不正du确的参数)
………
还有很多很多
如果我们发现不能准确的表达你当前的异常类型的意思时(或者取的名字不够友好时),你就可以选择自定义异常了
一、自定义异常是什么?
(1)必须继承Throwable或它的子类,但是实际开发中,一般继承RuntimeException和Exception
(2)建议大家保留两种构造器的形式
①无参构造
②带给父类的message属性赋值的构造器
二、自定义异常的使用
那怎么做呢?
ALT + SHIFT + S :
我们只要两个就行
2、如何使用自定义异常
只能使用throw语句进行手动抛出。它不能由JVM自动抛出。
3、建议:大家在自定义异常时,异常的类型名非常重要,见名知意。
练习
第一题
第二题
新建一个测试类
下面是月利率和年利息
月利率明显有问题
方法调错了
第三题
新建一个子类,它透支了
为了在子类当中读取方便我们可以改成protected,当然也可以不改,使用get/set
写完之后又来一个自定义异常
自定义异常还是两个套路,一继承二构造
新建一个类
测试一下
新建一个测试类