Java 异常处理与文件流操作全解析
1. Java 异常处理概述
在 Java 编程中,异常是程序运行过程中出现的错误。Java 通过将控制权转移到特殊的程序块(即异常处理程序)来管理这些错误。异常处理程序在错误发生时执行,有助于程序更优雅地处理错误,避免程序崩溃。
1.1 Throwable 类层次结构
Java 异常是 Throwable 类或其扩展类的实例。异常对象可以通过两种方式实例化:一是通过程序中的 throw 语句显式抛出;二是当 Java 运行时系统无法执行程序中的语句时隐式抛出。
当抛出异常时,可以使用 try 语句的 catch 子句捕获它。如果未捕获,调用当前方法的方法会重新抛出该异常,除非异常在 main() 方法中抛出,这将导致程序终止。使用 try 语句捕获异常称为异常处理,这是首选的解决方案,因为它允许程序在程序控制下继续运行。
Java 中的异常分为两种类型:
- 未检查异常(Unchecked Exceptions) :可以通过编写更好的代码来避免的异常,是 Error 类、RuntimeException 类及其扩展类的实例。例如,尝试将整数除以零会导致 ArithmeticException。
- 已检查异常(Checked Exceptions) :在程序运行前由编译器“检查”的异常。抛出这些异常的语句要么必须放在 try 语句中,要么必须在方法的头部声明。已检查异常应该被预期并由异常处理程序管理。
以下是部分标准异常类型的类继承层次结构: