版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章
程序的异常处理python程序设计基础教程7.1程序的错误和异常
编程时常常会出现三种错误包括语法错误、运行时错误、逻辑错误(1)语法错误:是指不遵循语言的语法结构引起的错误(程序无法正常编译/运行遗漏了某些必要的符号(冒号、逗号或括号)关键字拼写错误缩进不正确(2)运行时错误:是指程序在运行过程中遇到错误,导致意外退出尝试访问一个没有申明的变量。(3)逻辑错误:是指程序的执行结果与预期不符表达式可能不会按照期望的顺序进行运算,从而产生不正确的结果。7.1程序的错误和异常
异常含义类型SyntaxError
使用关键词作为变量名,会抛出该异常。在if、for、while等语句的头语句后面忘记写冒号,会抛出该异常。字符串缺引号,会抛出该异常。开放操作符
(、
{或
[没有关闭,
使Python继续将下一行作为当前语句的一部分,会抛出该异常。在判断条件中使用
=代替==,会抛出该异常。混合使用tabs和空格键作为缩进,会抛出该异常。语法错误NameError
使用当前环境中不存在的变量。另外,局部变量是本地的,不能被在定义的函数之外引用,会抛出该异常。运行时错误TypeError
数据类型不匹配,比如:对字符串,列表或元组使用非整数索引,会抛出该异常。格式字符串中的项目与输出值之间存在不匹配,数量的不匹配和无效的转换,会抛出该异常。传递给函数或方法的参数数量错误,会抛出该异常。KeyError请求一个不存在的字典关键字,会抛出该异常。AttributeError尝试访问未知的对象属性,会抛出该异常。ZeroDivisionError除数为0,会抛出该异常。FileNotFoundError打开的文件不存在,会抛出该异常。IOError输入输出错误(比如你要读的文件不存在),会抛出该异常。解释器没有输出错误信息运算符优先级考虑不周,会抛出该异常。变量名使用不正确,会抛出该异常。语句块缩进层次不对,会抛出该异常。布尔表达式出错,会抛出该异常。逻辑错误7.1程序的错误和异常写一个除法方法。
defGetdiv(m,n):returnm/nprint(Getdiv(6,0))print(Getdiv(6,3))ZeroDivisionError:divisionbyzerodefGetdiv(m,n):ifn==0:return'除数不能为0' else:returnm/n7.2捕获异常针对异常的处理方法如下:try: <执行语句1>#运行try语句块,并试图捕获异常except<异常1>: <执行语句2>7.2捕获异常针对异常的处理方法如下:try: <执行语句1>#运行try语句块,并试图捕获异常except<异常1>: <执行语句2>7.2捕获异常打开一个文件名为test.txt的文件,在该文件中的内容写入内容。
try:withopen("test.txt","r+")asf:f.write("这是一个测试文件,用于测试异常!!")exceptIOError:print("Error:没有找到文件或读取文件失败")7.2捕获异常当可能发生多种异常时,可以使用多个except语句捕获异常try: <执行语句1>#运行try语句块,并试图捕获异常except<异常1>: <执行语句2>#如果name1异常发生,那么执行该语句块。except<异常2>as<variable>: <执行语句3>#如果name2异常发生,那么执行该语句块,并把异常实例命名为variableexcept: <执行语句4>#发生了以上所有列出的异常之外的异常,执行该语句块。7.2捕获异常判断下列程序可能发生的异常。
try:s=eval(input('s='))s=5/sprint("5/s值为:",s)exceptZeroDivisionError:print("除数不能为0")exceptNameErrorase:print("变量名错误")except:print("语法错误")s=25/s值为:2.5
s=0除数不能为0
s=a变量名错误
s=,,,语法错误7.2捕获异常Python制定了专门的try...except...finally...异常处理语句try: <执行语句1>#运行try语句块,并试图捕获异常except<异常1>: <执行语句2>#如果异常1发生,那么执行该语句块。except<异常2>as<variable>: <执行语句3>#如果异常2发生,那么执行该语句块,并把异常实例命名为variableexcept: <执行语句4>#发生了以上所有列出的异常之外的异常,执行该语句块。else: <执行语句5>#如果没有异常发生,那么执行该语句块finally: <执行语句6>#无论是否有异常发生,均会执行该语句块。7.2捕获异常打开一个文件test.txt时,在该文件中的内容写入内容,判断可能发生的异常。
try:f=open("test.txt",'r+')f.write("这是一个测试文件,用于测试异常!!")exceptIOError:print("Error:没有找到文件或读取文件失败")else:print("内容写入成功")finally:f.close()print("程序执行结束")7.2捕获异常判断下列程序可能发生的异常。
defdiv(a,b):try:print("a/b=",a/b)exceptZeroDivisionError:print("除数为0")exceptExceptionase:print("未知错误:{}".format(e))else:print("语句块正常执行")finally:return'程序运行结束'print(div(3,2))print()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GBT 9111-2015 桑蚕干茧试验方法》专题研究报告
- 《GBT 29750-2013废弃资源综合利用业环境管理体系实施指南》专题研究报告
- 2026年宁夏葡萄酒与防沙治沙职业技术学院单招职业技能考试题库及参考答案详解一套
- 买卖合同尾款支付履约担保协议
- 中药材包装设计行业中药材包装设计项目经理岗位招聘考试试卷及答案
- 2025年安管人员考试管理平台题目和答案
- 2026年医院护理部年度工作计划
- 2025年镍镉电池项目发展计划
- 2025年带电作业技术会议:履带式综合埋杆车-有效解决非常规现场带电立杆任务
- 糖尿病的健康管理
- 白介素6的课件
- 2025保险公司定期存款合同书范本
- 《t检验统计》课件
- 医学检验考试复习资料
- DBJ50T-建筑分布式光伏电站消防技术标准
- 某工程消防系统施工组织设计
- 军事训练伤的防治知识
- 应急管理理论与实践 课件 第3、4章 应急预案编制与全面应急准备、应急响应启动与科学现场指挥
- 2025年常德职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- KCA数据库试题库
- 【MOOC】新媒体文化十二讲-暨南大学 中国大学慕课MOOC答案
评论
0/150
提交评论