定安县网站建设_网站建设公司_测试工程师_seo优化
2026/1/18 23:18:26 网站建设 项目流程

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

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

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

在 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)会更轻松。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询