异常整理(JAVA基础)

目录

一、Error(错误)

[二、 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博客


文章制作不易,如果有帮助的话,还希望能给个点赞和关注支持一下,谢谢大家!🙏🙏🙏

相关推荐
num_killer4 小时前
小白的Langchain学习
java·python·学习·langchain
期待のcode5 小时前
Java虚拟机的运行模式
java·开发语言·jvm
程序员老徐5 小时前
Tomcat源码分析三(Tomcat请求源码分析)
java·tomcat
a程序小傲5 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
仙俊红5 小时前
spring的IoC(控制反转)面试题
java·后端·spring
阿湯哥5 小时前
AgentScope Java 集成 Spring AI Alibaba Workflow 完整指南
java·人工智能·spring
小楼v5 小时前
说说常见的限流算法及如何使用Redisson实现多机限流
java·后端·redisson·限流算法
与遨游于天地6 小时前
NIO的三个组件解决三个问题
java·后端·nio
czlczl200209256 小时前
Guava Cache 原理与实战
java·后端·spring
yangminlei6 小时前
Spring 事务探秘:核心机制与应用场景解析
java·spring boot