Java Checked 异常和 Runtime异常体系

Java 异常分为两大类:Checked 异常和 Runtime 异常(运行时异常)。
Java Checked 异常和 Runtime异常体系
Java Checked 异常和 Runtime异常体系

使用 throws 声明抛出异常

Java Checked 异常和 Runtime异常体系
上面程序声明不处理 IOException 异常,将该异常交给 JVM 处理,所以程序一旦遇到该异常,JVM 就会打印该异常的跟踪栈信息,并结束程序,运行上面程序,得到如下结果:
Java Checked 异常和 Runtime异常体系
Java Checked 异常和 Runtime异常体系
使用 throws 声明抛出异常时有一个限制:子类方法声明抛出的异常类型应该是父类方法声明抛出的异常类型的子类或者相同,子类方法声明抛出的异常不允许比父类方法声明抛出的异常多。
Java Checked 异常和 Runtime异常体系Java Checked 异常和 Runtime异常体系
大部分时候推荐使用 Runtime 异常,而不使用 Checked 异常。Java Checked 异常和 Runtime异常体系