-
checked exception:受检查异常
需要try-catch包一下,或者在方法签名处声明throws,否则编译不通过。除了
RuntimeException
及其子类以外,其他的Exception
类及其子类都属于受检查异常 。IOException(IO异常,比如使用某些流来读取数据,其他一些进程关闭了流;尝试读取/写入文件但没有权限),ClassNotFoundException(找不到指定类的异常,通过字符串加载类比如用Class.forName(“xx”)时找不到指定的类会报错),SQLException(SQL异常,比如登录被拒绝;表不存在;列名不存在;插入的记录中某个字段为NULL,而表中有NOT NULL约束等)等
-
unchecked exception:不受检查异常
可以不用try-catch包起来,以及声明throws,就可以通过编译。
RuntimeException
及其子类都统称为非受检查异常。NullPointerException(空指针异常),ArrayIndexOutOfBoundsException(数组越界异常),ClassCastException(类型转换异常,比如父类转换为子类;集合向数组转换时使用toArray()方法未使用toArray(new T[集合大小]),没有指定数组类型和大小)
-
Error:错误
OutOfMemoryError(虚拟机内存不够错误),NoClassDefFoundError(类定义错误,比如类在编译时可用,运行时找不到该类,具体为同一个java文件中有两个类A和B,编译后有A.class文件和B.class,将其中A.class删掉,然后执行程序时,执行到A a = new A(),找不到A.class就会报错)
异常的分类
于 2023-12-09 11:10:31 首次发布