7.1.1 异常分类
Throwable 是异常对象的父类.
- Error, 无能为力的错误, 出现即停止程序
- Exception
- RuntimeException: 编程出现的错误
- I/OException: 类似 I/O 错误的异常
即使添加了检查文件是否存在的代码, 在打开时仍会出现异常:
- 检测之后才删除的文件
- 无论如何都要捕获异常
非检查型异常:
- Error
- RuntimeException
其他都是检查型异常.
7.1.2 声明检查型异常
抛出异常的时机:
声明方法抛出异常:
- 不应该声明抛出非检查型异常
class MyAnimation {
public Image loadImage(String s) throws FileNotFoundException, EOFException {
...
}
}
子类覆盖父类方法时:
- 如果父类方法没有声明抛出异常, 那么子类也不能声明
- 如果父类方法声明抛出异常, 那么子类不能声明抛出更通用的异常
7.1.3 如何抛出异常
7.1.4 创建异常类
习惯做法是包含两个构造器, 无参和有参的:
package chapter07;
import java.io.IOException;
public class FileFormatException extends IOException {
public FileFormatException() {}
public FileFormatException(String gripe) {
super(gripe);
}
}