在android studio中如何创建一个类来继承另外一个类_预定义异常类不够用?那就来自定义一个异常类吧 自定义异常类...

自定义异常

Java 提供相当多的异常类,尽量使用它们而不要创建自己的异常类

如果遇到一个不能用预定义异常类恰当描述的问题,那就可以通过派生 Exception类或其子类,例如,IOException类,来创建自己的异常类。

可以先从JDK中自带的异常类来学习如何创建自己的异常类:

6ae762515275b7c6a025ddad091f6109.png
  1. 该类从RuntimeException类来继承,因此该异常属于unchecked exception,可以不使用try-catch结构来处理
  2. 其次,包含了一个长整型的成员变量serialVersionUID,该变量主要在Java的序列化中使用,序列化机制通过判断类的serialVersionUID值来验证实体类的版本一致性,该值一般自动生成
  3. 第三,该类定义了两个构造方法,其中一个是无参数的默认构造方法,另外一个则是带有一个String类型参数的构造方法,参数用于存储具体的异常消息。通过throw来抛出异常时一般新建一个指定消息值的异常类对象。

实际上,不仅NullPointerException类的定义是这样的,绝大多数异常类的定义都是这么简单

在学习了JDK中异常类的源代码之后,我们接下来看看如何自定义异常类

如,我们已经有一个电动汽车类,我们需要有处理有关电力 不足的意外情况,

则可以设置一个异常类:OutOfEletricityException 自定义异常类

98a8e8b87293a6f66da20da6b28b6a03.png

该异常类的定义也非常简单。该类包含了一个静态的长整型常量,以及两个构造方法。

OutOfEletricityException异常类属于checked exception,因此,如果在方法中未使用throws进行声明的话,就必须使用try-catch结构进行处理。

总结:

异常处理通常需要更多的时间和资源

  • 异常出现在方法中。如果想让该方法的调用者处理异常,应该创建一个异常对象并将其抛出。如果能在发生异常的方法中处理异常,那么就不需要抛出或使用异常。
  • 一般来说,一个项目中多个类都会发生的共同异常应该考虑作为一种异常类。对于发生在个别方法中的简单错误最好进行局部处理,无须抛出异常。

在代码中,应该什么时候使用 try-catch 块呢?

  • 当必须处理不可预料的错误状况时应该使用它。
  • 一般不要用 try-catch 块处理简单的、可预料的情况。

如:

  • NullPointerException 是Java编程中出现次数非常高的异常,如果不是高居榜首的话,那至少也是名列前茅。
  • 在对一个没有完成构建的对象(例如null值)调用方法或访问成员变量,就会抛出NullPointerException类型的异常。
  • 该异常属于unchecked exception,因此不是必须使用try-catch结构进行处理。
41cc373eb53f5675eaddc9f154918f3e.png

try-catch结构来处理NullPointerException

实际上,在编程中更倾向于使用简单的if来进行判断,而不是使用try-catch结构来处理空

针异常:

767ffebec82c8372af01745ab6eb6481.png
  • 哪些情况是异常的,哪些情况是可预料的,有时很难判断。
  • 但有一点要把握住,不要把异常处理用作简单的逻辑测试。这种逻辑测试采用最简单的if结构即可完成,不需要使用复杂的异常处理来完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值