news 2026/4/13 8:15:10

JavaSE入门笔记---异常的概念与结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaSE入门笔记---异常的概念与结构

一、先搞懂:异常到底是什么?

你有没有遇到过这样的场景?

  • 去便利店买水,付款时发现钱包空了(钱不够)
  • 用手机导航,突然没网了(无法获取路线)
  • 打开文档,提示 “文件已损坏”(读不出内容)

在 Java 世界里,异常就是程序运行时遇到的 “意外状况”—— 就像生活中的小插曲,打断了原本顺畅的流程。比如:

  • 除以 0(数学逻辑不允许)
  • 访问数组下标越界(数组里没这个元素)
  • 读取不存在的文件(找不到目标资源)

这些情况如果不处理,程序会直接崩溃(闪退),就像没带钱还硬要结账,最后只能尴尬离场~

二、Java 异常体系结构、

Java 把所有异常都放进了一个 “家族树” 里,核心是Throwable(可抛出的),它是所有异常和错误的 “老祖宗”。

🌳 异常家族树(简化版)
Throwable(顶层父类) ├─ Error(错误:“绝症”,程序管不了) │ ├─ OutOfMemoryError(内存溢出) │ └─ StackOverflowError(栈溢出) │ └─ Exception(异常:“小感冒”,程序能处理) ├─ checked异常(编译时必须处理) │ ├─ IOException(文件读写异常) │ └─ SQLException(数据库操作异常) │ └─ unchecked异常(运行时才出现,可选处理) ├─ NullPointerException(空指针:对象没初始化就用) ├─ ArrayIndexOutOfBoundsException(数组下标越界) └─ ArithmeticException(算术异常:比如除以0)
✨ 关键区分:Error vs Exception

用生活化比喻理解:

  • Error(错误):比如电脑硬件烧坏、系统崩溃,属于 “致命问题”,程序自身无法修复,只能终止。
  • Exception(异常):比如考试忘带笔、走路踩水坑,属于 “可解决的意外”,程序可以通过代码处理,继续运行。

其中我们日常开发最常打交道的是RuntimeException及其子类(unchecked 异常),因为它们是运行时才会暴露的逻辑错误,需要我们通过代码优化来避免或处理。

三、异常体系的核心设计思想

Java 异常体系的设计很贴心,核心是“分类管理,统一处理”

  1. 所有异常都继承自 Throwable,保证了 “异常对象” 的统一性,处理方式可以复用。
  1. 按 “是否可恢复” 分成 Error 和 Exception,明确哪些问题需要关注、哪些是系统级问题。
  1. 编译时异常(checked)强制开发者提前处理(比如文件读取必须考虑文件不存在的情况),减少运行时崩溃;运行时异常(unchecked)则留给开发者灵活处理(比如空指针可以通过提前判空避免)。

四、入门必记:3 个核心类

类名

作用

常见子类

Throwable

异常体系顶层类,定义了异常的基本行为

Error、Exception

Exception

可处理的异常父类

IOException、RuntimeException

RuntimeException

运行时异常父类(无需编译时处理)

空指针、数组越界、类型转换异常等

五、学习小结

  1. 异常是程序运行时的 “意外状况”,Java 通过异常体系来规范处理这些状况。
  2. 核心继承关系:Throwable → Error/Exception → 具体异常类。
  3. 重点关注 Exception 及其子类,尤其是 RuntimeException,这是日常开发中最常遇到的异常类型。
  4. 理解异常体系的关键:区分 “不可修复的 Error” 和 “可处理的 Exception”,后续学习异常处理(try-catch、throws)会更轻松。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 19:12:17

【RAG】22-RAG评估的挑战与未来方向:当前问题及未来发展趋势

引言RAG评估(检索增强生成评估)是一种系统化的评估工具,旨在帮助组织识别、评估和应对潜在的风险因素。该评估框架涵盖了多个关键领域,提供全面的风险管理视角。RAG评估的主要目的是通过结构化的方法,帮助组织识别和量…

作者头像 李华
网站建设 2026/4/1 17:51:13

小麦病害数据集(yolo使用)

1.数据集:根据不同病害种类划分为包括健康小麦在内的多类国内常见的小麦病害,分别为:根冠腐烂(Crown and Root Rot)、叶锈病(Leaf Rust)、小麦散斑,又名小麦黑穗病(Wheat…

作者头像 李华
网站建设 2026/4/8 20:37:36

【毕业设计】基于python-CNN深度学习卷神经网络识别狗脸

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/4 10:04:59

安卓app巨坑 nvue后者页面要写画笔绘制功能nvue canvas

前期web浏览器上面canvas可以很支持vue页面,因为要用原生插件组件必须是nvue才能使用显示出来所以重构(真的巨坑),然后之前写的绘制功能canvas又不能生效了是因为nvue原生weex啥的原因导致直接方法无效我丢。话不多说实现方式上效…

作者头像 李华