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


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

相关推荐
带刺的坐椅10 分钟前
qwen3 惊喜发布,用 ollama + solon ai (java) 尝个鲜
java·spring·solon·solon-ai·qwen3
.生产的驴43 分钟前
SpringBoot 接口国际化i18n 多语言返回 中英文切换 全球化 语言切换
java·开发语言·spring boot·后端·前端框架
Howard_Stark1 小时前
Spring的BeanFactory和FactoryBean的区别
java·后端·spring
饮长安千年月1 小时前
学生管理系统审计
java·网络安全·代码审计
-曾牛1 小时前
Spring Boot中@RequestParam、@RequestBody、@PathVariable的区别与使用
java·spring boot·后端·intellij-idea·注解·spring boot 注解·混淆用法
新时代苦力工1 小时前
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
java·数据结构·list
niesiyuan0001 小时前
MAC如何安装多版本jdk(以8,11,17为例)
java
zcyf08092 小时前
kafka理论学习汇总
java·分布式·学习·kafka
再拼一次吧2 小时前
Spring进阶篇
java·后端·spring
爱编程的小庄2 小时前
Maven 4.0.0 模式-pom.xml配置详解
xml·java·maven