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

Java异常处理机制详解 | 类层次、捕获处理、自定义异常与实战案例

简介全面讲解Java异常体系结构、异常处理语法、文件求最大值实战、自定义异常开发附带完整实训代码零基础也能看懂掌握。目录前言什么是Java异常处理机制异常类整体层次结构Java常见异常处理方式实战案例读取数据文件查找最大值自定义异常类开发与使用异常处理综合实训任务总结1. 前言什么是Java异常处理机制程序编写完成语法无误不代表运行不会出错。在实际运行中会出现数组下标越界、空对象调用、除数为0、文件读取失败、网络断开、非法数据录入等意外情况这类非正常运行状况就是异常。Java提供一套成熟完整的异常处理机制专门用来管理程序运行错误。传统写法遇到错误会直接闪退崩溃异常机制可以主动捕获错误、给出提示信息、补救业务逻辑、释放占用资源避免程序整体终止运行大幅提升软件健壮性、容错性与稳定性。异常机制核心作用分离正常业务代码与错误处理代码规范错误抛出、传递、捕获流程方便开发调试与后期维护。2. 异常类整体层次结构Java中所有异常、错误都继承自Throwable顶级父类整体分为两大分支Error和Exception。2.1 Error 系统级错误属于虚拟机底层严重错误程序无法捕获、无法手动处理出现后程序基本无法恢复运行。常见场景内存溢出、虚拟机崩溃、栈溢出等。2.2 Exception 程序级异常日常开发中重点处理的异常代码可以捕获并修复分为两大类运行时异常 RuntimeException编译不报错运行期间才触发编译器不强制处理。常见空指针异常、数组越界、类型强转异常、算术除零异常。编译时受检异常编译阶段强制校验必须处理否则无法运行。常见文件IO异常、网络异常、类不存在异常。层级结构图Throwable├─ Error 系统严重错误不可处理└─ Exception 可处理程序异常├─ RuntimeException 运行时异常└─ 编译时受检异常3. Java常见异常处理方式Java依靠关键字实现异常管控四种常用处理方式。3.1 try-catch-finally 捕获异常将容易报错的代码放入try块出现异常自动匹配对应catch执行处理逻辑finally块无论是否发生异常必定执行多用于关闭文件流、数据库连接、释放资源。基础语法try {// 可能产生异常的代码} catch (异常类型 e) {// 异常处理逻辑} finally {// 资源释放代码}3.2 throws 抛出异常定义方法时声明可能出现的异常将异常向上抛给调用者处理当前方法不捕获。3.3 throw 手动抛出异常代码中主动创建异常对象并抛出用于主动判定非法数据触发异常提醒。3.4 try-with-resources 自动释放资源简化IO流、连接资源关闭代码执行完毕自动释放资源无需手动写finally关闭。4. 实战案例读取数据文件查找最大值需求读取本地txt文件中的数字数据遍历找出最大值加入异常处理防止文件不存在、数据格式错误等问题。完整代码import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class FindMaxNum {public static void main(String[] args) {File file new File(data.txt);Scanner sc null;int max Integer.MIN_VALUE;try {sc new Scanner(file);while (sc.hasNextInt()) {int num sc.nextInt();if (num max) {max num;}}System.out.println(文件中数据最大值为 max);} catch (FileNotFoundException e) {System.out.println(异常数据文件不存在请检查文件路径);} finally {if (sc ! null) {sc.close();}}}}案例说明捕获文件不存在异常避免程序崩溃循环读取文件内整数对比求取最大值finally中关闭扫描流避免资源泄露5. 自定义异常类开发与使用Java内置异常无法满足业务特殊判定场景可继承Exception或RuntimeException创建自定义异常用于业务规则校验报错。5.1 自定义异常类// 自定义数值非法异常public class NumIllegalException extends Exception{public NumIllegalException(){super();}public NumIllegalException(String msg){super(msg);}}5.2 测试调用自定义异常public class CustomExceptionTest {public static void checkNum(int num) throws NumIllegalException{if(num 0){throw new NumIllegalException(数值不能为负数不符合业务规则);}System.out.println(数值校验通过num);}public static void main(String[] args) {try {checkNum(-5);} catch (NumIllegalException e) {e.printStackTrace();}}}使用场景会员等级、分数判定、金额校验、账号权限等专属业务报错都可以使用自定义异常。6. 异常处理综合实训任务实训要求自定义成绩异常类分数超出0~100范围抛出异常编写方法接收学生成绩合法正常输出非法抛出自定义异常使用try-catch捕获异常输出错误提示完善异常处理结构保证程序稳定运行实训完整代码// 自定义成绩异常class ScoreException extends Exception{public ScoreException(String message){super(message);}}public class ScoreTrain {// 成绩校验方法public static void judgeScore(int score) throws ScoreException{if(score 0 || score 100){throw new ScoreException(成绩非法分数必须在0-100之间);}System.out.println(成绩录入成功当前分数score);}public static void main(String[] args) {int stuScore 120;try {judgeScore(stuScore);} catch (ScoreException e) {System.out.println(录入失败e.getMessage());}}}7. 总结异常是程序运行时非正常错误异常机制用于容错防护防止程序闪退崩溃。所有异常根源为Throwable分为Error系统错误与Exception可处理异常包含运行时异常和编译异常。常用处理方式try-catch捕获、throws抛异常、throw手动抛异常、自动资源释放。文件读取求最大值属于IO异常典型实战日常开发高频使用。内置异常无法满足业务时可继承异常类创建自定义异常实现个性化规则报错。合理使用异常处理能极大提升代码健壮性、可读性与后期维护效率。
http://www.zskr.cn/news/1373090.html

相关文章:

  • 从零开始单细胞分析:手把手教你用Scanpy复现PBMC3K教程(附避坑指南)
  • 从集合运算到代码:一文搞懂Jaccard系数,附Python/NumPy/Pandas三种实现方法对比
  • MNIST识别项目复盘:除了准确率97%,我们更应该关注数据预处理与损失函数的选择
  • 【数据分析】具有随机效应的分数扩散的非参数估计附matlab代码
  • 无设备穿戴式无感定位 优化煤化工厂区人员动线管理
  • 别再死记硬背K-Means代码了!用Educoder实战,5分钟搞懂聚类中心怎么‘动’起来的
  • 【无人船】基于A星算法融合DWA限制内陆水域无人水型导航路径规划附Matlab代码
  • 2026年免费图片去水印保姆级教程:不用下载软件,微信小程序一步搞定
  • 零基础实战逻辑漏洞挖掘:从注册到注销的6大高频场景
  • Keil工具链LPT端口冲突解决方案与配置优化
  • ICLR 2026小米AI 技术深度解读
  • 【DeepSeek版本决策脑图】:基于17类真实场景(金融/教育/客服/代码生成)的精准匹配表
  • Django 从 0 到 1 打造完整电商平台:购物车实现方式分析与模型设计
  • ChatGPT生成图表总“丑”?3步精准调优Prompt+4类D3.js/Plotly适配模板,即刻提升专业度
  • Gemini KYC合规提效实战(2024最新FATF第24号指引适配版):3类高危漏审场景+4套动态阈值配置模板
  • 借助大模型实现多格式文档解析查看
  • 人工智能通识课:深度学习框架 PyTorch
  • LLM:大语言模型的主要任务
  • 卷积神经网络基础与深度学习
  • 钢铁雄心4/Hearts of Iron IV2026官方正版最新版pc免费下载(看到请立即转存 资源随时失效)手机版通用
  • GPT-5.5 智能化全面普及,@ACP# IX、GSV 系列芯片构筑全层级硬件底座
  • 2025-2026年丰宁坝上草原住宿推荐:十大口碑产品评测骑马穿越防迷路市场份额价格 - 品牌推荐
  • 工业制造企业适用膜结构及推拉篷优质厂家推荐:伸缩帐篷、体育场看台遮阳、体育场看台遮阳、体育馆篷房、充电站遮阳棚选择指南 - 优质品牌商家
  • 多重检验策略:提升NPLM信号无关搜索的鲁棒性与均匀性
  • 对称性自适应机器学习力场:高效精准计算碳纳米管声子谱
  • 凯撒旅业有多少年历史?发展关键节点有哪些? - 品牌2025
  • 成都热轧H型钢供应商、2026规格齐全按需定制拿货 - 四川盛世钢联营销中心
  • 2026全疆中央空调安装服务标杆名录:换热站设备/换热站运维/智能换热站/空气能供暖安装/空气能供暖工程/空气能供暖改造/选择指南 - 优质品牌商家
  • 基于静态动态障碍物DWA、DWA+RRT*、改进A*、RRT* 2D和3D的路径规划算法Matlab代码
  • FPG平台:信息透明度建设的深度解析