# Java 中的异常处理(了解)

在 Java 中,所有的异常都有一个共同的祖先java.lang包中的Throwable类

Throwable:有两个重要的子类:

image-20210326152023719

Exception(异常)Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。

# error 和 exception 的区别(了解)

Error 类和 Exception 类的父类都是 Throwable 类,他们的区别如下。

Error 类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。对于这类 错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

Exception 类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

Exception 类又分为运行时异常(Runtime Exception)和受检查的异常(CheckedException ),运行时异常。

# 常见异常

  1. java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象。
  2. java.lang.ClassNotFoundException 指定的类找不到;出现原因:类的名称和路径加载错误; 通常都是程序试图通过字符串来加载某个类时可能引发异常。
  3. java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非 数字型字符。
  4. java.lang.IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生。
  5. java.lang.IllegalArgumentException 方法传递参数错误。
  6. java.lang.ClassCastException 数据类型转换异常。