《Java核心技术》复习笔记 - 第十一章 异常

来源:互联网 发布:linux 查看vnc服务 编辑:程序博客网 时间:2024/04/29 14:15

《Java核心技术》复习笔记 - 第十一章 异常

Java中的异常层次结构如下:

 

Error类层次结构描述了java运行时系统内部错误资源耗尽错误。应用程序不应该抛出这样类型的错误。如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全的终止之外,再也无能为力了。这种情况很少出现。

设计程序时,主要关注Exception层次结构。由程序错误导致的异常属于RuntimeException,而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常。

 派生于RuntimeException的异常包含如下几种情况:

  • 错误的类型转换
  • 数组访问越界
  • 访问空指针

不是派生于RuntimeException的异常包括

  • 试图在文件尾部读取数据
  • 试图打开一个错误格式的URL
  • 试图根据给定的字符串查找Class对象,而这个字符串表示的类不存在。


一般来说,程序如果出现RuntimeException异常,那么肯定是你的问题了。

 Java语言规范将派生于Error类或RuntimeException类的所有异常称为未检查(unchecked)异常,所有其他的异常称为已检查(checked)的异常。一个方法必须声明所有可能抛出的已检查异常,而未检查异常要么不可控制(Error),要么就应该避免发生(RuntimeException)。如果方法没有声明所有可能发生的已检查异常,编译器会给出一个错误信息。

如果子类覆盖了超类的一个方法,子类方法中声明的已检查异常不能超过超类方法中声明的异常范围,也就是说,子类方法中抛出的异常范围更小,或者根本不抛出异常。如果超类没有抛出任何已检查异常,子类也不能抛出任何已检查异常。


0 0