系列文章目录

前言

面试题,列出至少5个平时见过的异常类型,以及声明情况下会发生这个异常,如何处理,这道题你会吗?
先来聊聊系统预定义异常吧
例如:
ArrayIndexOutOfBoundsException
ClassCastException (当试图将对象强制转换为不是实例的子类时,抛出该异常)
NullPointerException
ArithmeticException (算术运算异常)
InputMisMatchException
IllegalAugumentException (此异常表明bai向方法传递了一个不合法或不正du确的参数)
………
还有很多很多

如果我们发现不能准确的表达你当前的异常类型的意思时(或者取的名字不够友好时),你就可以选择自定义异常了

一、自定义异常是什么?

(1)必须继承Throwable或它的子类,但是实际开发中,一般继承RuntimeException和Exception
(2)建议大家保留两种构造器的形式
①无参构造
②带给父类的message属性赋值的构造器

二、自定义异常的使用

00015.03 自定义异常的概述以及练习
那怎么做呢?
00015.03 自定义异常的概述以及练习
ALT + SHIFT + S :
00015.03 自定义异常的概述以及练习

我们只要两个就行
00015.03 自定义异常的概述以及练习

00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
2、如何使用自定义异常
只能使用throw语句进行手动抛出。它不能由JVM自动抛出。

3、建议:大家在自定义异常时,异常的类型名非常重要,见名知意。

练习

第一题

00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习

第二题

00015.03 自定义异常的概述以及练习
新建一个测试类
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
下面是月利率和年利息

00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
月利率明显有问题
方法调错了

00015.03 自定义异常的概述以及练习

第三题

00015.03 自定义异常的概述以及练习
新建一个子类,它透支了
00015.03 自定义异常的概述以及练习

00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习

00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
为了在子类当中读取方便我们可以改成protected,当然也可以不改,使用get/set
00015.03 自定义异常的概述以及练习

写完之后又来一个自定义异常00015.03 自定义异常的概述以及练习
自定义异常还是两个套路,一继承二构造
新建一个类
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
测试一下
新建一个测试类
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习
00015.03 自定义异常的概述以及练习

相关文章:

  • 2022-02-10
  • 2021-07-03
  • 2022-12-23
  • 2021-10-11
  • 2022-02-10
  • 2022-12-23
  • 2021-05-07
  • 2022-01-02
猜你喜欢
  • 2021-05-18
  • 2022-02-10
  • 2022-12-23
  • 2022-01-26
  • 2022-12-23
  • 2022-01-06
相关资源
相似解决方案