目录
[二、 Exception(异常)](#二、 Exception(异常))
[(一)检查型异常(Checked Exceptions)](#(一)检查型异常(Checked Exceptions))
[(二)非检查型异常(Unchecked Exceptions,Runtime Exceptions)](#(二)非检查型异常(Unchecked Exceptions,Runtime Exceptions))
在Java中,异常(Exception)和错误(Error)是程序执行期间可能遇到的两大类问题,它们都继承自Throwable
类。以下是Java中可能出现的几类主要异常和错误的详细归纳:
一、Error(错误)
Error类及其子类表示的是Java运行时环境的内部错误和资源耗尽的情况,这些错误通常是严重的,且大多数情况下应用程序无法处理或恢复。常见的Error类型包括:
-
VirtualMachineError :当JVM出现问题时抛出,如
StackOverflowError
(堆栈溢出错误)和OutOfMemoryError
(内存溢出错误)。-
StackOverflowError:当应用程序的递归调用过深,导致调用栈溢出时抛出。
-
OutOfMemoryError:当JVM的堆内存不足,无法为对象分配内存时抛出。
-
-
AWTError:与AWT(抽象窗口工具集)相关的错误,通常在AWT环境出现问题时抛出。
-
InternalError:指示JVM内部发生了错误。
二、 Exception(异常)
Exception类及其子类表示的是程序本身可以处理的异常情况。根据异常是否在编译时被检查,Exception被进一步分为检查型异常(checked exceptions)和非检查型异常(unchecked exceptions,也称为运行时异常,runtime exceptions)。
(一)检查型异常(Checked Exceptions)
检查型异常是编译器要求必须处理的异常。常见的检查型异常包括:
-
IOException:输入输出异常,表示在输入或输出操作中发生了错误。
-
SQLException:SQL异常,表示在数据库操作中出现了错误。
-
ClassNotFoundException:类找不到异常,当尝试加载类时,找不到指定的类。
-
FileNotFoundException :文件未找到异常,是
IOException
的一个子类,表示找不到指定的文件。
(二)非检查型异常(Unchecked Exceptions,Runtime Exceptions)
非检查型异常通常是由程序的逻辑错误引起的,如空指针引用、数组越界等。这些异常在编译时不会被检查,因此编译器不会强制要求程序处理它们。常见的非检查型异常包括:
-
NullPointerException :空指针异常,尝试在需要对象的地方使用
null
。 -
ArrayIndexOutOfBoundsException:数组越界异常,访问数组的索引超出了其边界。
-
ArithmeticException:算术异常,如整数除零。
-
IllegalArgumentException:非法参数异常,表示向方法传递了一个不合法或不适当的参数。
-
ClassCastException:类型转换异常,尝试将对象强制转换为不是其实例的子类。
-
IllegalStateException:非法状态异常,表示对象的状态不允许进行某个操作。
-
NumberFormatException:数字格式异常,尝试将字符串转换为数字时,字符串的格式不正确。
此外,还有一些其他的非检查型异常,如IllegalArgumentException
的子类IllegalArgumentException
(注意这里实际上是一个重复,但可能是为了强调不同类型的非法参数异常)、IllegalAccessException
(没有访问权限异常)、InstantiationException
(实例化异常)等。
三、总结
Java中的异常和错误是程序开发过程中不可避免的一部分,它们帮助开发者识别和处理程序中可能出现的问题。通过合理地使用异常处理机制,可以提高程序的健壮性和可靠性。
注意:可参考(异常机制(JAVA基础)_java检查异常-CSDN博客)
文章制作不易,如果有帮助的话,还希望能给个点赞和关注支持一下,谢谢大家!🙏🙏🙏