Error和Exception说明
Error
Error
类及其子类表示的是Java虚拟机(JVM)无法或不应该尝试恢复的严重问题。这些问题通常是由JVM本身的问题、系统资源耗尽、或其他不可控的环境因素引起的。由于Error是不可恢复的,因此应用程序不应该尝试捕获和处理这些错误。
常见的Error
类型包括:
-
OutOfMemoryError
:当JVM没有足够的内存来满足对象分配请求时抛出。 -
StackOverflowError
:当应用程序递归调用自身而没有正确的终止条件时,导致调用栈溢出时抛出。 -
VirtualMachineError
:表示JVM本身出现严重错误,如JVM内部错误、系统崩溃等。
Exception
Exception
类及其子类表示的是程序本身可以处理的问题。这些问题通常是由程序中的错误、逻辑错误或外部输入引起的。与Error
不同,Exception
通常是可以被应用程序捕获和处理的。异常处理机制允许程序在出现错误时采取适当的行动,如记录错误、回滚操作、或向用户显示友好的错误消息。
常见的Exception
类型包括:
-
NullPointerException
:当应用程序试图在需要对象的地方使用null
时抛出。 -
IndexOutOfBoundsException
:当应用程序试图访问数组或字符串的非法索引时抛出。 -
IOException
:表示输入/输出操作失败或中断。 -
ClassNotFoundException
:当应用程序试图通过其字符串名称加载类,并且找不到具有指定名称的类定义时抛出。
总结
-
Error
通常表示严重且不可恢复的错误,由JVM或系统问题引起,应用程序不应该尝试处理这些错误。 -
Exception
表示程序可以处理的问题,通常是由程序逻辑或外部输入引起的,应该被捕获并妥善处理。
在设计和编写Java程序时,了解Error
和Exception
之间的区别非常重要,这有助于编写更健壮、更可靠的代码,并有效地处理运行时错误。
异常体系结构
-
Java把异常当作对象来处理,并定义一个基类java.lang.whrowable作为所有曼常的超类。
-
在Java APl中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。