7.1.1 异常分类

Throwable 是异常对象的父类.

  • Error, 无能为力的错误, 出现即停止程序
  • Exception
    • RuntimeException: 编程出现的错误
    • I/OException: 类似 I/O 错误的异常

image.png

即使添加了检查文件是否存在的代码, 在打开时仍会出现异常:

  • 检测之后才删除的文件
  • 无论如何都要捕获异常

非检查型异常:

  • Error
  • RuntimeException

其他都是检查型异常.

7.1.2 声明检查型异常

抛出异常的时机:

image.png

声明方法抛出异常:

  • 不应该声明抛出非检查型异常
  1. class MyAnimation {
  2. public Image loadImage(String s) throws FileNotFoundException, EOFException {
  3. ...
  4. }
  5. }

子类覆盖父类方法时:

  • 如果父类方法没有声明抛出异常, 那么子类也不能声明
  • 如果父类方法声明抛出异常, 那么子类不能声明抛出更通用的异常

7.1.3 如何抛出异常

image.png
image.png

7.1.4 创建异常类

习惯做法是包含两个构造器, 无参和有参的:

  1. package chapter07;
  2. import java.io.IOException;
  3. public class FileFormatException extends IOException {
  4. public FileFormatException() {}
  5. public FileFormatException(String gripe) {
  6. super(gripe);
  7. }
  8. }