0620 Java核心技术卷1

6.4内部类

https://blog.csdn.net/liu771626413/article/details/80577684

第七章 异常、断言和日志

7.1 处理错误

  如果由于出现错误而使得某些操作没有完成,程序应该:

1)返回到一种安全状态,并能够让用户执行一些其他的命令

2)允许用户保存所有操作的结果,并以妥善的方式终止程序

1.用户输入错误

2.设备错误

3.物理限制

4.代码错误

 

1.异常分类

  在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例

所有的异常都是由Throwable继承而来,但在下一层立即分解为两个分支:Error和Exception

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

在设计Java程序时,需要关注Exception层次结构,这个层次结构又分解为两个分支:一个分支派生于RuntimeException;另一个分支包含其他异常

由程序错误导致的异常属于RuntimeException,而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常

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

1)错误的类型转换

2)数组访问越界

3)访问null指针

不是派生于RuntimeException的异常包括:

1)试图在文件尾部后面读取数据

2)试图打开一个不存在的文件

3)视图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在

“如果出现RuntimeException异常,那么就一定是你的问题”

Java规范将派生于Error类或RuntimeException类的所有异常称为非受查异常,所有其他的异常称为受查异常

2.声明受查异常

一个方法不仅需要告诉编译器将要返回什么值,还要告诉编译器有可能发生什么错误,方法应该在其首部声明所有可能抛出的异常,例如:

  public FileInputStream(String name) throws FileNotFoundException

如果发生了这种糟糕情况,构造器将不会初始化一个新的FileInputStream对象,而是抛出一个FileNotFoundException类对象,系统就会开始搜索异常处理器,以便知道如何处理这个对象

猜你喜欢

转载自www.cnblogs.com/aLin002/p/13168021.html