10.3 Checked异常和Runtime异常体系
10.3 Checked异常和Runtime异常体系
java异常分类
Java的异常被分为两大类: Checked异常和Runtime异常(运行时异常)。
- 所有的
RuntimeException类及其子类的实例被称为Runtime异常; - 不是
RuntimeException类及其子类的异常实例,则被称为Checked异常。
Java程序必须显示处理Checked异常
Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误,无法通过编译。
Checked异常处理的两种方式
对于Checked异常的处理方式有如下两种。
- 如果
当前方法明确知道如何处理该异常,那么程序应该使用try...catch块来捕获该异常,然后在对应的catch块中修复该异常。 - 当前方法不知道如何处理这种异常,应该在定义该方法时声明
抛出该异常。
Runtime异常不需要显示处理
Runtime异常则更加灵活, Runtime异常无须显式声明抛出,如果程序需要捕获Runtime异常,也可以使用try...catch块来实现。
总结
Checked必须显示处理,处理时可以使用try...catch语句,也可以直接抛出Runtime不需要显示处理,如有必要也可以使用try...catch捕获Runtime异常。