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

Java异常机制

一、三种异常机制

Java的异常机制有三种:

1.Error类及其子类表示的是错误,它是不需要处理也不能处理的异常,比如VirtualMachineError虚拟机错误,ThreadDeath线程僵死等。

2.RuntimeException类及其子类表示的是非受检异常,是系统可能会抛出的异常,可以去处理,也可以不处理,最经典就是NullPointException空指针异常和IndexOutOfBoundsException越界异常。

3.Exception类及其子类(不包含非受检异常)表示的是受检异常,这是必须处理的异常,不处理则程序不能通过编译,比如IOException表示I/O异常,SQLException表示数据库异常。

二、异常体系结构(核心继承关系)

Java 所有异常都继承自ThrowableThrowable 的两种子类为:Error,Exception,分为两大分支:

Throwable
├─Error(错误):JVM 层面的严重错误,程序无法处理(如 OOM、StackOverflowError),无需捕获。
└─Exception(异常):程序可处理的异常,又分两类:
├─受检异常(Checked Exception):编译期强制捕获/声明(如 IOException、SQLException)。
├─非受检异常(Unchecked Exception):运行时异常,编译期不强制处理(如 NullPointerException、ArrayIndexOutOfBoundsException),继承自 RuntimeException

三、常见的异常

  • 常见运行时异常(非受检异常):
  1. NullPointerException
    空指针异常,JAVA8中可用Optional来避免,一般是代码中出现了空对象时,抛出该异常。
  2. IndexOutOfBoundsException
    数组下标越界异常,当使用的数组下标超出数组允许范围时,抛出该异常。
  3. ClassCastException
    类型转换异常,当试图将对象强制转换为不是实例的子类时,抛出该异常。触发场景:强制类型转换不兼容
    Object obj = "字符串"; Integer num = (Integer) obj; // String 不能转 Integer
  4. NumberFormatException 数字格式化异常,当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。

  5. IllegalArgumentException非法参数异常触发场景:传入方法的参数不合法

    Thread.sleep(-1000); // 休眠时间不能为负数
  6. ArithmeticException算术异常触发场景:数学运算错误(最典型:除零)

    int a = 10 / 0; // 除数不能为0
  7. NumberFormatException数字格式异常触发场景:字符串转数字时格式错误

    Integer.parseInt("abc"); // 非数字字符串无法转整数
  • 常见检查性异常(受检异常):
  1. SQLException SQL异常。

  2. IOException IO异常,在对流操作时有可能会出现的异常。
  3. FileNotFoundException 找不到某个文件时,会抛出该异常。
  4. ClassNotFoundException 找不到某个类时,会抛出该异常。
http://www.jsqmd.com/news/581414/

相关文章:

  • 嵌入式GUI开发五大实战建议
  • OpenClaw多端同步:千问3.5-9B实现手机与电脑任务协同
  • 别再把 Claude Code 当代码补全工具了!它是完整的 Agent 开发平台,90% 的人只用了 10% 的能力
  • Youtu-Parsing常见问题解决:解析速度慢、识别不准?看这篇就够了
  • hiSHtory 数据导入导出:迁移和备份历史记录的完整解决方案
  • 2026年陕西厨房无人化管理公司排名,汉安物业管理实力上榜 - 工业品牌热点
  • 收藏!小白/程序员转行Agent必看,4步理清学习思路,轻松具备求职竞争力
  • 3步永久保存QQ空间回忆:GetQzonehistory备份工具全攻略
  • StructBERT情感分析镜像安全加固:关闭debug模式、禁用敏感端点、HTTPS强制启用
  • 封口垫片公司怎么选,广东励诺包装是否 - myqiye
  • 北京交通大学团队破解天气预报难题
  • 快速构建tomcat配置可视化原型:用快马一键生成配置向导界面
  • PyTorch 2.8镜像效果展示:Qwen2-VL多模态理解+视频内容结构化输出
  • WindowResizer:轻松解决窗口尺寸限制的专业工具
  • OpenClaw怎么部署?2026年4月本地5分钟零门槛集成OpenClaw及百炼APIKey步骤
  • 如何用Mi-Create打造专属小米手表表盘:零基础设计师的终极指南
  • [具身智能-205]:主流机器人的舵机的通信协议
  • Pearl重放缓冲区:从基础到高级数据增强技术
  • 显存检测故障诊断指南:从问题识别到深度优化
  • 2010-2024年上市公司业绩不佳持续时间
  • 陕西做数字化后厨管理的公司哪家靠谱,服务质量怎么样? - mypinpai
  • ObsPy实战指南:从数据结构认知到地震波形可视化的完整流程
  • 利用快马平台快速生成Node,js应用原型,一键部署至腾讯云龙虾服务器
  • DS-KH635C-JF
  • RWKV7-1.5B-g1a效果展示:用‘请写一段120字以内的产品介绍文案,语气专业’生成范例
  • 新手零基础入门,快马ai带你三步搞定win10下的opencl开发环境
  • YOLO12模型量化实战:FP16/INT8精度损失与推理速度提升实测对比
  • OpenCore Legacy Patcher实战指南:从问题诊断到系统优化的完整路径
  • LUA脚本
  • 当数学公式遇上PPT:我的LaTeX-PowerPoint奇妙之旅