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


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

相关推荐
程序员岳焱28 分钟前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
都叫我大帅哥36 分钟前
AQS(AbstractQueuedSynchronizer)深度解剖:从“奶茶店排队”到源码级设计哲学
java
斯奕sky_small-BAD41 分钟前
C++ if语句完全指南:从基础到工程实践
java·开发语言·php
云之渺43 分钟前
125java
java
都叫我大帅哥44 分钟前
Java ReentrantLock:从“舔狗式等待”到源码级征服指南
java
程序员岳焱1 小时前
Java 高级泛型实战:8 个场景化编程技巧
java·后端·编程语言
钢铁男儿1 小时前
C# 类和继承(扩展方法)
java·servlet·c#
饮长安千年月1 小时前
JavaSec-SpringBoot框架
java·spring boot·后端·计算机网络·安全·web安全·网络安全
移动开发者1号1 小时前
Android 大文件分块上传实战:突破表单数据限制的完整方案
android·java·kotlin
代码匠心1 小时前
从零开始学Flink:揭开实时计算的神秘面纱
java·大数据·后端·flink