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

Java的异常体系

Java 的异常体系是基于类继承结构设计的,核心是java.lang.Throwable类,它是所有错误(Error)和异常(Exception)的根父类。整个体系可分为两大分支:Error(错误) 和 Exception(异常),二者分别代表不同类型的程序问题。

1. 顶层:Throwable

Throwable是异常体系的顶层类,定义了所有错误和异常的通用属性和方法(如获取异常信息getMessage()、打印堆栈跟踪printStackTrace()等)。

其直接子类只有两个:ErrorException

2. Error(错误)

Error表示运行时环境的错误,通常是程序无法处理的一些严重问题,由 JVM(Java 虚拟机)生成,与程序本身无关,程序员一般无需捕获或处理。出现这类错误时,程序往往会直接崩溃。

常见的Error子类:

  • OutOfMemoryError:内存溢出(如创建对象过多导致堆内存不足)。
  • StackOverflowError:栈溢出(如递归调用层数过多)。
  • NoClassDefFoundError:类定义未找到(编译时存在的类,运行时缺失)。
  • InternalError:JVM 内部错误。

3. Exception(异常)

Exception表示程序本身可以处理的异常条件,通常由程序逻辑错误或外部环境问题导致。程序员可以通过异常处理机制(try-catch)捕获并处理,使程序继续执行。

Exception又分为两类:受检异常(非运行时异常) 和 非受检异常(运行时异常)

3.1 非运行时异常

这类异常在编译阶段就必须被强制捕获或者声明抛出,通常是外部错误导致的。

常见的非运行时异常:

  • IOException:IO 操作异常(如文件读写失败)。
  • ClassNotFoundException:加载类时未找到指定类。
  • SQLException:数据库操作异常。
  • ParseException:字符串解析异常(如日期格式错误)。
3.2 运行时异常

这类异常在编译阶段是不需要被强制捕获或声明抛出的,通常是由于程序错误所导致的。

常见非受检异常:

  • NullPointerException:空指针异常(调用 null 对象的方法)。
  • IndexOutOfBoundsException:索引越界(如数组、集合访问下标无效)。
  • IllegalArgumentException:非法参数(方法接收无效参数)。
  • ArithmeticException:算术异常(如除数为 0)。
  • ClassCastException:类型转换异常(如将 String 强转为 Integer)。
http://www.xdnf.cn/news/17297.html

相关文章:

  • hadoop HDFS 重置详细步骤
  • ReAct Agent 原生代码实现(纯Python实现)
  • 【指南版】网络与信息安全岗位系列(三):安全运维工程师
  • 前端技术架构设计文档(Vue2+Antd+Sass)
  • 关于AI应用案例计算机视觉、自然语言处理、推荐系统和生成式AI四大领域的详细技术分析。
  • Java垃圾回收(GC)探析
  • 护网行动之后:容器安全如何升级?微隔离打造内网“微堡垒”
  • 【智能协同云图库】第六期:基于 百度API 和 Jsoup 爬虫实现以图搜图
  • 时间复杂度和空间复杂度Java语言描述
  • 【渲染流水线】[应用阶段]-[渲染命令队列]以UnityURP为例
  • AutoMQ-Kafka的替代方案实战
  • 如何在 Ubuntu 24.04 中永久更改主机名
  • zookeeper因jute.maxbuffer启动异常问题排查处理
  • 【macOS操作系统部署开源DeepSeek大模型,搭建Agent平台,构建私有化RAG知识库完整流程】
  • 29-数据仓库与Apache Hive-创建库、创建表
  • MT信号四通道相关性预测的Informer模型优化研究
  • Linux中Docker Swarm实践
  • 手机控制断路器:智能家居安全用电的新篇章
  • SupChains技术团队:需求预测中减少使用分层次预测(五)
  • VSCode - 设置Python venv
  • PyTorch + PaddlePaddle 语音识别
  • 深入探索C++模板实现的单例模式:通用与线程安全的完美结合
  • 初识C++类的6个默认成员函数
  • 基于 Socket.IO 实现 WebRTC 音视频通话与实时聊天系统(Spring Boot 后端实现)
  • LongVie突破超长视频生成极限:1分钟电影级丝滑视频,双模态控制告别卡顿退化
  • PyTorch如何实现婴儿哭声检测和识别
  • 串联所有单词的子串-leetcode
  • 解读 gpt-oss-120b 和 gpt-oss-20b开源模型
  • 多账号管理方案:解析一款免Root的App分身工具
  • 抖音、快手、视频号等多平台视频解析下载 + 磁力嗅探下载、视频加工(提取音频 / 压缩等)