62已检查和未检查的异常 Java语言规范将任何Eror的子类以及 RuntimeEXception的子类都称为未检查 ( unchecked)异常。而其他的异常都被称为已检查( checked)异常 在Java程序中,无论何时使用java.io包中类的输入或输出方法,我们都会使 用 throws IoException子句。如果没有在这些方法头中包括 throws子句,编译 器就将生成语法错误。但是,我们并不担心诸如被0除或者数组索引出界的情 况。如果在程序执行期间发生这些类型的错误,那程序以相应的错误消息终 止。对于这些类型的异常,我们无需在方法头中包括 throws子句。所以,在 程序中,哪些类型的异常需要在方法头中包括 throws子句呢? IOEXception是已检查异常,由于 System in read方法可能会引发 IOEXception 异常,因而抛出的是已检査异常。当编译器遇到这些方法调用时,会检查程 序是否处理 IOEXception,或通过抛出异常来报告。启用编译器检查类似 IOEXception或其他类型的已检查异常,可以帮助客户程序减少不能正确处理 的异常的数量。到目前为止,由于前面章节的程序不要求处理 IOEXception或 其他类型的已检査异常,所以程序通过抛出它们来声明检查异常6.2 已检查和未检查的异常 Java语言规范将任何Error的子类以及RuntimeException的子类都称为未检查 (unchecked)异常。而其他的异常都被称为已检查(checked)异常。 在Java程序中,无论何时使用java.io包中类的输入或输出方法,我们都会使 用throws IOException子句。如果没有在这些方法头中包括throws子句,编译 器就将生成语法错误。但是,我们并不担心诸如被0除或者数组索引出界的情 况。如果在程序执行期间发生这些类型的错误,那程序以相应的错误消息终 止。对于这些类型的异常,我们无需在方法头中包括throws子句。所以,在 程序中,哪些类型的异常需要在方法头中包括throws子句呢? IOException是已检查异常,由于System.in.read方法可能会引发IOException 异常,因而抛出的是已检查异常。当编译器遇到这些方法调用时,会检查程 序是否处理IOException,或通过抛出异常来报告。启用编译器检查类似 IOException或其他类型的已检查异常,可以帮助客户程序减少不能正确处理 的异常的数量。到目前为止,由于前面章节的程序不要求处理IOException或 其他类型的已检查异常,所以程序通过抛出它们来声明检查异常