Java的异常(Exception)层次结构主要分为两个分支:Error
和Exception
。Error
类表示编译时和系统错误(如内存溢出)。这些错误通常由Java虚拟机生成,并且大多数情况下不应该由应用程序处理。
Exception
分为两类:检查型异常(Checked Exceptions)和非检查型异常(Unchecked Exceptions)。检查型异常必须在代码中显式处理(例如,通过try-catch
或者声明抛出),而非检查型异常(包括运行时异常RuntimeException
及其子类和错误Error
)则无此要求。
使用try-catch
处理异常的示例:
public class ExceptionHandlingExample {
public static void main(String[] args) {
try {
int result = 10 / 0; // 这将引发ArithmeticException
} catch (ArithmeticException e) {
System.err.println("发生除以零的异常");
} finally {
System.out.println("这里是finally块,无论是否发生异常都会执行");
}
}
}
在这个例子中,try
块包含了可能会抛出异常的代码。如果try
块中的代码抛出了ArithmeticException
异常,那么控制将转移到catch
块。finally
块无论是否发生异常都会执行,通常用于关闭资源等清理工作。