还剩5页未读,继续阅读
文本内容:
人工智能与大数据学院人工程序设计教案n34教学标题项目7面向对象的编程任务1掌握类和实例的语法规则授课班级云计算2101课时2场地4403时间2022年6月09,星期四授课教师李力L项目/任务价值异常处理可以让程序更健壮,也就更易于使用作为技术人员,对产品要精益求精,否则产品没有竞争力,终将被行业淘汰知识目标
1.掌握什么是异常
2.了解异常和错误的关系
3.熟悉导致程序错误的原因
4.明白异常处理的意义和方法能力目标
2.学习目标
1.掌握异常处理基本语法
2.能捕获异常
3.能结合以前学习内容进行异常处理思政-素质目标教学设计
1.让学生明白人无完人,但要在学习、生活和工人中不断完善自我,使自己更加健康、自由地生活、学习和工作;
2.错误不可避免,异常也就发生,正确面对,处理是当,会让事情会更好,也就有收获;
3.失败不可怕,看如何处理;
4.人生道路没有一帆风顺的,要在失败和措折中成长,培养勤俭、奋斗、创新、奉献的劳动精神;
1.任务描述
3.学习内容
2.知识准备异常情况时有发生,程序错误无法避免,关键是如何处理
3.任务实施从程序错误谈起,为什么会出错,出错导致的后果,原因,如何处理?重庆在线开放课程平台《Python开发技术应用》,多媒体课件,理实一体化实训室,网络教学资源,www.pythontutor,com可视
4.学习资源化匚具、WWW.processor!.com在线流程图绘制工具实物教材,软件工具包教学重点异常处理语句、处理多个异常教学难点处理多外异常本课程学习到如今,已经了解了许多理论知识,掌握了很多语法技能,也编与了许多案例程序,但这些程序都米用了面向过的编程学情分析方法学生已具备用编写程序的基本能力,但存一个基本事实,程序的各种错误的发生是常态,应用系统出错也是很正常的,但不能影响其他正常运行流程,如何处理,本次课引入异常处理教学方法训练与练习法;情境教学法教学模式采用线上线下混合教学模式介绍类和实例的语法规则、相关方法本次课教学流程回顾已学内容,提出程序错误问题;分析程序出错原因和类型python程序错误与异常的关系讲解异常处理语法教学策略举例说明学生练习在练习中总结方法间配教学环节学生、教师活动教学方法、手段及思政设计时分课程导学本课程学习到如今,已经了解了许多理论知识,掌握了很多语法技能,也编介绍程序错误的类型、原因,异常多媒体演示3写了许多案例程序,但这些程序都采用了面向过的编程方法学生已具备用编写程序的的基本概念,提出如何在程序中信息调研基本能力,但存一个基本事实,程序的各种错误的发生是常态,应用系统出错也是很正处理的问题讲授、讨论、案例教学常的,但不能影响其他正常运行流程,如何处理,本次课引入异常处理课前发布导学单,线上线下结教学实施过程合,引导学习方式转变,培养自主学习能力小组协作、沟通、互助学习,培育团队合作意识,引导学生大胆表达引入项目学习任务和目标多媒体演示讲解程序错误、错误原因、错误类2任务1一个异常的处理型、什么是异常用等知识点按启发式教学讲解异常处理概念、异常处理语句要求完成课内习题小组作品展示和讲解工作内容
1.程序错误现象总结
2.程序错误类型及原因分析
3.什么是异常
4.异常处理语句任务实施思考并答题多媒体演示45程序主要有哪些错误?分析出错启发式教学任务1除数为零时程序异常处理原因,如果放在应用系统中会有主体内容什么后果为什么?思政设计程序错误难免,人步骤1程序错误的出现生又何尝不是如I此?关键看程序产生错误是一种常态,原因有很多:课内案例习题如何对待错误,怎样处理不协作开分现嚣员湘发时的功能练习单链表阶段3当索引和切片断总结,不断提升和完善自设陷序心沟通不词式幅超出范围的时候要按照标准触发对应我做的的异常,BP IndoxError,并给出错误原一旦错误发生,程序就会终止运行为了提高程序的健壮性,人们需要一种能够在程因信息学生聆听老师讲解,观看老师编序中处理错误的手段,而不是粗暴地终止程序码实现,师生共同总结流程要点,步骤2异常的基本概念梳理脉络,形成自然语言或伪代异常和错误紧密相关,但并不是所有的错误都会导致异常程序的错误通常可以分为码描述的文档,学生根据此文档三类语法错误、运行错误、逻辑错误重新编码,实现程序语法错误运行错误逻辑错误
5.异常处理实例在宝程过苣中输入了K■是在程序运行过程中出■程序运行后没有得到没符合语法的代码导致■现的错误例如除数为■计者预期的结果,例如的包括表达式不完序列下标越界、文件■使用了岩误的流程控整、缺少必要的符号、■元法打开、缺乏磁盘读■制、指令次序堂误、算错误的维进等■写权限等■法考虑不周全、循环条..件不正确等步骤3异常能处理什么忽略掉某些错误,跳过它继续执行后面的代码;对于交互式操作,可以回到错误地点,提示用户重新操作;可以在程序结束之前做一些清理工作,避免数据丢失a=floatinputEnter adividend:1b=floatinputEnter adivisor:-Ngif b!=0:print%s/%s=%s%a,b,a/belse:printThe divisorcant be0!既然分支结构可以解决问题,为什么还要使用异常处理机制呢?使用分支结构来处理错误缺乏效率,而且使程序难以阅读答案效率和程序的可读性步骤4几种典型的异常NameError访问未定义的变量:»aTraccback mostrecent calllast:File”stdin”,line1,in moduleNameError:name ais notdefined当我们访问一个变量时,解释器查询了名称空间,但未能在其中找到该变量的名称,这时就会产生一个NameError异常IndexError下标越界»11=[0,1,1,2,3,5,8,13]»11E10]Traceback mostrecent cal1last:File〃sldin”,1ine1,in moduleIndexError:list indexout ofrangeIndexError异常表示你通过索引访问了列表中的元素时,超出了序列的范围KeyError在字典中访问不存在的键/在集合中访问不存在的元素»s=set[l,2,3,4]»s.remove6Traceback mostrecent calllast:File”stdin”,line1,in moduleKeyError:6在字典中访问不存在的键、在集合中访问不存在的元素,都会引发KeyError异常lOErrorI/O错误»fl=open h:\\random.txt,r+Traceback mostrecent calllast:File〃stdin”,line1,in modulelOError:[Errno13]Permission denied:*h:\\random.txt*任何I/O类的错误都会引发lOError异常步骤5异常处理语句亡—except七—except—finally七ig-fSallg检测异常的主要手段是通过try语句仃y语句有三种类型一组try语句中可以有多个except子句,但最多只能有一个finally子句try负责检测异常,所有在try语句块中的代码都会被检测,一旦发生异常,try代码块中的后续代码不会再执行except用于对已经检测到的错误进行处理如果在try的代码块中未发生错误,except代码块会被跳过finally不处理错误,只用于定义一些必要的清理工作和except不同,无论try语句是否检测到错误,finally子句下的代码块都会被执行except的一般语法是这样的except Exc[as reason]:except suite其中,Exc是异常的类型,reason是异常发生时的理由,可以省略reason except和o对应的代码块也被称作异常处理器实例a-ftoati^putEy\tera力videnW:,Enteradivisor1}try/%s=%exceptZeroDivis/onErrordivisor CantbeO!执彳瑾吴.Entera dividend:S Eiateradivisor OThedivisor cantbeO!try-except的补充说明在try语句块中,异常发生点后的剩余语句永远不会执行一旦一个异常被触发,剩余代码将被忽略解释器将搜索异常处理器,一旦找到,就开始执行处理器中的代码如果没有找到合适的处理器,就会显示回溯信息,中止程序try-except-else组合else语句下的代码块作为try-except的补充如果try正常执行完毕,也就是没有异常发生,则else语句下的代码块会执行;如果异常发生,则else语句下的代码不会执行finally子句finally有两种组合try-except-finally try-finally先说第一种,finally的特性是它所包含的代码块一定会执行,无论异常是否发生这种设计主要用于那些需要释放资源的代码,例如当你打开一个文件进行读写,无论是否发生异常、无论异常是否处理成功(或处理失败导致程序中断),都应该关闭文件、清理资源注意如果同时使用了else子句和finally子句,则else子句必须放在在finally之前为了说明finally子句在try语句中的执行顺序考虑一个完整的组合,它不仅具有except和final ly子句,还有else子句在这样一个代码结构中,根据是否发生和是否捕获异常,代码块的执行顺序如下try-finally组合try-finally组合一般用于嵌套的try语句中finally会保留发生的异常的实例,并向上层代码提交拓展项目多个导异常处理的程序的实现代码逻辑如下深化小组讨论多媒体演示13如果没有异常发生,启s发uit性e探讨讨论教学tryA程序设计中为什么要引入异常处理机制?suite2e>xce如pt何Ex自c工定...义.Ex异cN常?同面向对象有何关系?如果异常发生且被捕获suite3工今2(异常点之后的代码不执行)93今59£elsesuite4如果异常发生,且未被捕获fiKaltysuite5工今2(异常点之后的代码不执行)今5总结小组总结引导同学总结抢答
51.异常的基本概念互动教学
2.异常和程序错误
3.异常处理语句
4.几种异常处理情况
5.多种异常的处理任务多媒体
201.尝试处理被0除异常、数据类型异常、下标越界异常等
2.Try...except...else...final1y之间关系
3.完成课内习题学业评价小组评价和个人综合评价(课堂讨论的参与、是否认真笔记)2补充教学反思教学反思主要问题解决办法本次课的做得好的地方。
个人认证
优秀文档
获得点赞 0