版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章异常处理教案一、教学目标1.理解异常的概念与异常体系结构2.掌握JVM默认处理异常的方式3.熟练掌握try-catch-finally异常处理方式4.掌握throws声明异常与throw抛出异常5.掌握多异常处理方式6.掌握自定义异常的定义与使用7.理解编译时异常与运行时异常的区别8.掌握异常处理的最佳实践二、教学重点与难点教学重点:-try-catch-finally异常捕获-throws声明异常-throw抛出异常-运行时异常与编译时异常-自定义异常教学难点:-finally与return执行顺序-throws与throw的区别-异常处理原则与最佳实践-异常链与异常包装三、教学内容7.1异常概述7.1.1异常概念【教学内容】1.异常:程序运行时出现的不正常情况2.异常vs错误:-异常:程序可以处理的问题,如空指针、除零-错误:系统级问题,程序无法处理,如OOM3.异常好处:-提高程序健壮性-分离正常代码与错误处理代码-便于定位问题【教学要点】-演示:除零、数组越界、空指针异常-异常是对象,JVM创建异常对象7.1.2异常体系【教学内容】1.Throwable是所有异常和错误的根类2.Error:错误,程序不处理3.Exception:异常,程序需要处理-RuntimeException:运行时异常,不要求必须处理-非RuntimeException:编译时异常,必须处理4.常见异常:-NullPointerException、ArrayIndexOutOfBoundsException-ArithmeticException、ClassCastException-ParseException、IOException【教学要点】-画图展示异常继承体系-区分运行时异常与编译时异常7.1.3JVM默认处理【教学内容】1.JVM遇到异常默认处理:-创建异常对象(包含异常类型、原因、位置)-输出异常信息到控制台-终止程序运行2.异常堆栈信息解读:-异常类型、异常消息-at行号:异常发生位置,从下往上看调用链【教学要点】-教学生如何看异常堆栈信息-强调:默认处理程序会终止,这不好7.2异常处理7.2.1try-catch【教学内容】1.格式:try{可能出异常的代码;}catch(异常类型变量名){异常处理代码;}2.执行流程:-无异常:try执行完,跳过catch-有异常:try跳到catch,处理后继续执行3.常用方法:-e.getMessage():异常消息-e.toString():异常类型+消息-e.printStackTrace():打印堆栈【教学要点】-演示有异常和无异常的执行流程-对比:处理异常程序不终止,继续运行7.2.2try-catch-finally【教学内容】1.finally作用:必须执行的代码,释放资源2.格式:try{}catch(){}finally{}3.特点:-无论是否有异常,finally都执行-只有JVM退出(System.exit(0))才不执行4.finally与return:-finally在return之前执行-finally修改返回值的情况【教学要点】-代码演示finally总是执行-演示System.exit(0)跳出finally-重点:finally用于关流、释放资源7.2.3多异常处理【教学内容】1.多个catch:try{}catch(Ae){}catch(Be){}catch(Exceptione){}2.注意:子类异常在前,父类在后3.JDK7+:一次catch多个异常catch(A|Be){}4.多个异常平级关系【教学要点】-演示父类异常在前编译报错-强调:Exception放最后兜底7.3声明与抛出异常7.3.1throws声明异常【教学内容】1.作用:方法内部处理不了,声明抛出给调用者2.格式:方法名()throws异常1,异常2{}3.注意:-编译时异常必须声明-运行时异常可以不声明-子类重写方法声明异常不能大于父类4.调用者处理:要么继续throws,要么try-catch【教学要点】-演示编译时异常不声明编译报错-对比:运行时异常不声明也可以7.3.2throw抛出异常【教学内容】1.作用:手动抛出异常对象2.格式:thrownew异常类型("异常消息");3.位置:方法内部4.throwsvsthrow:-throws:方法声明,跟异常类,可多个-throw:方法内部,跟异常对象,一个5.应用:参数校验不合法时手动抛出【教学要点】-举例:年龄不能为负数,手动抛出异常-表格对比throws与throw区别7.4自定义异常【教学内容】1.为什么自定义:JDK异常不够用,业务异常2.自定义编译时异常:继承Exception3.自定义运行时异常:继承RuntimeException4.提供构造方法:-无参构造-带消息的构造-带消息和原因的构造5.使用:thrownew自定义异常()【教学要点】-举例:年龄非法异常、分数超出范围异常-推荐继承RuntimeException7.5异常处理最佳实践【教学内容】1.异常处理原则:-能处理就处理,处理不了就抛出-不要捕获后什么都不做(空catch)-不要捕获Exception太宽泛-异常信息要详细,便于排查2.资源释放:try-with-resources自动关流3.不要用异常控制业务流程【教学要点】-强调:空catch是大忌,隐藏问题-介绍JDK7+try-with-resources语法四、教学建议1.先演示各种常见异常,让学生认识它们2.教学生看异常堆栈信息,这是调试的关键3.finally执行顺序要代码一步步演示4.强调异常处理最佳实践,养成好习惯5.课后练习:写参数校验方法,抛自定义异常五、常见问题与解决方案1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平安epass测试题目及答案
- 2026年体育质量测试题及答案
- 2026年努力程度的测试题及答案
- 2026年工作匹配心里测试题及答案
- 新疆维吾尔塔城地区和布克赛尔蒙古自治县2025届四下数学期末联考试题含答案
- 新疆维吾尔伊犁哈萨克自治州察布查尔锡伯自治县2025年数学三年级下学期期中预测试题含解析
- 2026年复旦智商测试题及答案
- 2026年儿童情绪健康测试题及答案
- 新疆省阿勒泰地区2025届数学三年级第二学期期末考试模拟试题(含答案)
- 新疆生产建设兵团2025年数学三年级第二学期期中教学质量检测试题(含答案解析)
- 管道施工现场安全管理规范
- 大厦消防安全培训课件
- 防腐工安全操作规程培训课件
- 钠与水的反应微课课件
- 特发性肺纤维化患者全程管理中的个体化方案
- 溪流承包合同范本
- 桂山岛民宿创业计划书
- 大数据与财务管理专业
- 券商现场核查通知书
- 医院专用矿泉水创新创业项目商业计划书
- 2025年公需课新质生产力试题及答案
评论
0/150
提交评论