异常类

NullPointerException和NumberFormatException都是异常类,所有异常类都有一个共同的父类Throwable

Throwable有4个public构造方法:

1.public Throwable()

2.public Throwable(String message)

3.public Throwable(String message,Throwable cause)

4.public Throwable(Throwable cause)

message表示异常信息,cause表示触发该异常的其他异常。

异常可以形成一个异常链,上层的异常由底层异常触发,cause表示底层异常。

异常类体系

以Throwable为根,Java API中定义了非常多的异常类,表示各种类型的异常,部分类示意如下:

异常类体系.jpg

Throwable是所有异常的基类,它有两个子类Error和Excepetion。

Error表示系统错误或资源耗尽,由java系统自己使用,应用程序不应抛出和处理。比如图中列出的虚拟器错误(VirtualMachineError)、子类内存溢出错误(OutOfMemoryError)、栈溢出错误(StackOverflowError)。

Exception表示应用程序错误,它有很多子类,应用程序也可以通过继承Exception或其子类创建自定义异常,比如图中列出的IOException(输入输出I/O异常),SQLException(数据库SQL异常),RuntimeException(运行时异常)。

RuntimeException(运行时异常)比较特殊,它的名字有点误导,因为其他异常也是运行时产生的,它表示的实际含义是unchecked exception (未受检异常),相对而言,Exception的其他子类和Exception自身则是checked exception (受检异常),Error及其子类也是unchecked exception。

checked还是unchecked,区别在于java如何处理这两种异常。对于checked异常,java会强制要求开发者进行处理,否则会有编译错误,而对于unchecked异常则没有这个要求

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2021 Silver Shaded
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信