异常整理(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博客


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

相关推荐
只吹45°风2 分钟前
Java-ArrayList和LinkedList区别
java·arraylist·linkedlist·区别
阿华的代码王国10 分钟前
【JavaEE】多线程编程引入——认识Thread类
java·开发语言·数据结构·mysql·java-ee
黑蛋同志10 分钟前
array和linked list的区别
java
andrew_121916 分钟前
腾讯 IEG 游戏前沿技术 一面复盘
java·redis·sql·面试
寻求出路的程序媛24 分钟前
JVM —— 类加载器的分类,双亲委派机制
java·jvm·面试
这孩子叫逆26 分钟前
35. MyBatis中的缓存失效机制是如何工作的?
java·spring·mybatis
骆晨学长26 分钟前
基于SpringBoot的校园失物招领系统
java·spring boot
汇匠源26 分钟前
零工市场小程序:保障灵活就业
java·小程序·零工市场
计算机编程-吉哥29 分钟前
计算机毕业设计 二手图书交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
java·spring boot·毕业设计·毕业论文·计算机毕业设计选题·计算机毕业设计开题报告·二手图书交易系统
qq_353233538930 分钟前
【原创】java+springboot+mysql高校社团网系统设计与实现
java·spring boot·mysql