当前位置: 首页 > news >正文

Java 异常分类

Java 异常的核心分类是三大类,基于继承关系(都继承自Throwable顶层父类)划分,同时也分为受检异常非受检异常两种处理机制,这是开发中最常用的划分方式。

一、顶层父类:Throwable

所有异常和错误的根类,只有它的子类才能被 JVM 识别为可抛出对象。
两个直接子类:

  1. Error(错误)
  2. Exception(异常)

二、核心三大分类

1. Error(错误)

  • 定义:JVM 层面的严重系统错误,程序无法处理、无法恢复
  • 特点
    • 代码无需捕获/抛出,捕获了也没用;
    • 由 JVM 自动抛出,一旦发生程序大概率崩溃。
  • 常见例子
    • StackOverflowError:栈溢出(递归死循环)
    • OutOfMemoryError:内存溢出(OOM)
    • NoClassDefFoundError:类找不到

2. 运行时异常(RuntimeException)

  • 定义:程序运行期间才会触发的逻辑错误,属于非受检异常
  • 特点
    • 代码不强制要求捕获/处理
    • 由代码逻辑问题导致(空指针、数组越界等)。
  • 常见例子
    • NullPointerException:空指针异常
    • IndexOutOfBoundsException:数组/集合越界
    • IllegalArgumentException:参数不合法
    • ClassCastException:类型转换异常

3. 编译时异常(受检异常 Checked Exception)

  • 定义编译阶段就必须处理的异常,属于受检异常
  • 特点
    • 编译器强制要求捕获(try-catch)或声明抛出(throws);
    • 通常是外部环境问题(文件、网络、数据库等)。
  • 常见例子
    • IOException:IO 流异常(文件读写失败)
    • SQLException:数据库操作异常
    • FileNotFoundException:文件找不到
    • ClassNotFoundException:类加载失败

三、两种处理机制分类(开发重点)

类型包含处理要求触发时机
非受检异常Error + 运行时异常不强制处理运行时
受检异常除运行时外的所有 Exception编译器强制处理编译时

四、完整继承关系图

Throwable ├── Error(错误,JVM 崩溃级,不处理) └── Exception(异常,程序可处理) ├── RuntimeException(运行时异常,非受检) │ ├── NullPointerException │ ├── IndexOutOfBoundsException │ └── ... └── 编译时异常(受检异常) ├── IOException ├── SQLException └── ...

总结

  1. Error:系统崩了,代码管不了;
  2. 运行时异常:代码逻辑错了,可处理可不处理;
  3. 编译时异常:外部环境问题,必须处理
http://www.zskr.cn/news/1465566.html

相关文章:

  • GitHub Actions+Docker+Render的ML模型CI/CD流水线实战
  • 加权图算法:Max Cut与k-Clique问题解析
  • 电脑显示器哪家好:排名前五 专业深度测评 - 服务品牌热点
  • 生产级机器学习:让模型在真实系统中稳定运行
  • 别再死记硬背!用‘换名规则’和‘辖域扩张’5步搞定谓词逻辑前束范式
  • 集合论里的“空关系”和“全域关系”到底有啥用?用Python代码带你直观理解
  • 2026遵义黄金回收深度测评!6家合规门店盘点,闲置黄金稳妥变现指南 - 余生黄金回收
  • Qt6状态栏进阶玩法:用QLabel打造可点击链接与实时状态显示(附源码)
  • 2026年银川劳动纠纷律师实力对比 5位资深律师各有特色 - 本地品牌推荐
  • 手把手教你用大恒GalaxyView调试GigE相机:从采集图像到校正白平衡(附常见问题)
  • Protein Hunter:当结构预测模型开始“反向设计”蛋白
  • 深入手机ISP:用Python模拟LSC校正全流程(附完整代码与数据集)
  • 2026年遵义黄金变现哪家靠谱?主流品牌全方位横评,甄选诚信门店 - 余生黄金回收
  • 百度网盘直链解析终极指南:如何免费突破下载速度限制
  • 告别手动搜索!3秒获取百度网盘提取码的神奇工具
  • 2026遵义旧金回收怎么选?实地实测6家正规门店,黄金变现避坑优选 - 余生黄金回收
  • 几何解耦文本嵌入技术在图像生成中的应用
  • STM32实战:手把手教你用I2C读取SM9541压力传感器数据(附完整代码与避坑指南)
  • WRF模式新手村攻略:从下载数据到画出第一张图,我的Cygwin踩坑全记录
  • 三分钟了解9种常见的企业融资方式 - 智慧园区
  • 别让运放自激振荡!手把手教你用波特图分析反相放大电路的稳定性(附LTspice仿真)
  • 2026长沙市权威认证贵金属回收 TOP5+黄金回收白银回收铂金回收门店地址电话推荐
  • 3步搞定Unity游戏汉化:XUnity自动翻译器终极指南
  • 别再让单核CPU拖累你的网速了!手把手教你配置Linux网卡多队列(RPS/RFS/RSS)
  • MATLAB路面不平度仿真工具集:A级ISO标准谱生成+三维随机建模
  • Claude时代:职场人效率跃迁的实战指南
  • 从DHT11升级到DHT22踩过的坑:STM32项目精度翻倍,但时序和数据处理全变了
  • GPX Studio完整使用指南:5分钟掌握免费在线GPX轨迹编辑终极技巧
  • 服务的本质是状态契约:从systemd到K8s的服务全链路解析
  • 告别32位烦恼:三菱MX Component V5 X64版在Win10/Win11上的完整配置与C#通信实战