千家信息网

Java中关于异常的知识点有哪些

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本文小编为大家详细介绍"Java中关于异常的知识点有哪些",内容详细,步骤清晰,细节处理妥当,希望这篇"Java中关于异常的知识点有哪些"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2026年10月31日Java中关于异常的知识点有哪些

本文小编为大家详细介绍"Java中关于异常的知识点有哪些",内容详细,步骤清晰,细节处理妥当,希望这篇"Java中关于异常的知识点有哪些"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

3W原则

哪都有的3W原则,JAVA异常也可以总结3W:what、where、why

  • what对应异常类型:回答了什么被抛出

  • where对应异常堆栈跟踪:回答了在哪抛出

  • why对应异常信息:回答了为什么被抛出

异常体系

上图我们看出Throwable是异常的***类,Error和Exception是他的子类。

Exception又分RuntimeException和非RuntimeException子类。

Error与Exception区别

我们看一下他们的概念定义:

(1) Error:程序无法处理的系统错误,编译器不做检查。

  • Error表示系统致命的错误,程序没法处理。一般是与JVM相关的问题,如系统崩溃,内存溢出,方法调用栈溢出等,如:经常遇到的StackOverflowError、OutOfMemoryError。这种类型的错误,编译器不做检查,都是系统运行过程中发生的。

  • 这些错误靠我们程序本身是无法处理与预防的,遇到了建议直接程序中止、重启。

(2) Exception:程序可以处理的异常,捕获后可处理。

  • Exception异常是程序能够捕获的,也可以做异常处理,我们要尽可能的去处理,使程序继续运行,而不是中止程序。

  • 总结一下就是Error是程序无法处理的错误,Exception是可以处理的异常。

RuntimeException与否区别

上图中Exception有两种类型的异常,我们来看一下。

(1) RuntimeException:不可预知的,程序应当自行避免

  • 何为不可预知?如:数组下标越界,访问对象空指针等,这种异常是我们小伙伴们在编写程序时要尽量避免。也就是我们程序员是能够避免的。

  • 如针对空指针异常,我们应该在编程的时候,加上空指针判断,if(obj == null)如何如何,这样就避免了空指针异常。

(2) 非RuntimeException:可预知的,编译器可检查的异常

  • 可预知,如:在我们打开一个文件时,如文件不存在引用的异常。

  • 这种异常编译器会检查出来,必须需要处理的。

  • 这个也称之为Checked Exception异常类型

责任归属

我们从责任角度看:

  • Error属于JVM需要承担的责任

  • RuntimeException是程序应该承担的责任

  • 非RuntimeException(CheckedException)可检查异常是JAVA编译器应该承担的责任

上面代码直观一点:

们看到Error和RuntimeException编译器是不检查的,而CheckedExcepton异常编译器是检查的,也就是我们程序员是必须要捕获处理的。那怎么处理呢?

(1) try-catch方式

用try-catch方式捕获这个异常,可以在catch代码段进行异常逻辑处理,这个就按照实际业务而定。如上图代码是FileNotFound异常,根据这个类型我们就知道是文件句柄不存在,那我们应该做哪些处理。如:提示一下用户该文件不存在

(2) 上抛异常方式

在复杂的业务中,我们的程序员自己写的模块,很有可能被其他程序员写的模块进行引用,为了能够让其他程序员知道我们模块的异常,并要他们要进行处理,我们就可以采用上抛异常方式

我们看一下上层调用的处理

我们看到上抛异常,是需要调用方进行处理的。那处理的方式是什么呢?其实就是上面讲的try-catch或继续上抛。

常见的Error和Exception

(1) RuntimeException

  • NullPointerException - 空指针引用异常

  • ClassCastException - 类型强制转换异常

  • IllegalArgumentException - 传递非法参数异常

  • IndexOutOfBoundsException - 下标越界异常

  • NumberFormatException - 数字格式异常

(2) 非RuntimeException

  • ClassNotFoundException - 找不到指定class异常

  • IOException - IO操作异常

(3) Error

  • NoClassDefFoundError - 找不到class定义的异常

  • StackOverflowError - 深递归导致栈被耗尽抛出的异常

  • OutOfMemoryError - 内存溢出异常

读到这里,这篇"Java中关于异常的知识点有哪些"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

处理 程序 编译器 检查 编译 类型 指针 程序员 责任 错误 知识 知识点 文件 方式 系统 中关 上图 代码 文章 模块 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网和科技创新 互联网金融与金融科技 互联网科技的发展 科技与互联网发展 互联网科技金融公司 互联网金融科技创新 猫创互联网科技 互联网金融监管科技 北京华百购互联网科技有限公司 科技与互联网哪个更好 阿大互联网科技有限公司 宜昌元轩互联网科技有限公司 注册互联网科技公司经营范围大全 明优互联网科技有限公司 工业互联网展湾科技股份有限公司 无锡工业互联网科技有限公司 元气玛特互联网科技公司是外包吗 领航科技大厦互联网公司 互联网科技自媒体灵感 科技美学互联网 艺术 互联网最新的科技 工业互联网科技新基建 互联网络科技有限公司 互联网金融公司科技 武汉健翔互联网络科技有限公司 荆州市昕露互联网络科技有限公司 互联网科技商业 崇明区互联网教育科技售后服务 本届互联网博览会上的黑科技 每日互联网科技新闻
0