《Python编程从入门到实践》记录之文件异常(try-except-else代码块)
目录
1、try-except代码块
2、else代码块
Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。当程序发生错误时,Python会创建一个异常对象。如果编写了处理异常的代码,程序将继续运行;如果未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。
异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行,显示编写的友好信息,而不是traceback。
1、try-except代码块
可以使用try-except来处理可能发生的错误。
处理ZeroDivisionError异常的try-except代码块类似如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-try:print(5/0)
except ZeroDivisionError:print("You can't divide by zero!")
我们将导致错误的代码行print(5/0) 放在了一个try代码块中。如果try 代码块中的代码运行起来没有问题,Python将跳过except代码块; 如果try代码块中的代码导致了错误,Python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。
在这个示例中,try代码块中的代码引发了ZeroDivisionError异常, 因此Python指出了该如何解决问题的except代码块,并运行其中的代码。这样,用户看到的是一条友好的错误消息,而不是traceback:
2、else代码块
else代码块:依赖于try代码块成功 执行的代码都应放到else代码块中。
try-except-else代码块的工作原理大致如下:
- Python尝试执行try代码块中的代码;只有可能引发异常的代码才需要放在try语中。
- 有时候,有一些仅在try代码块成功执行时才需要运行的代码;这些代码应放在else代码块中。
- except代码块告诉Python,如果它尝试运行try 代码块中的代码时引发了指定的异常,该怎么办。
下边例子是使用try-except-else执行除法运算的简单例子:
#!/usr/bin/env python
# -*- coding:utf-8 -*-print("Give me two numbers, and I'll divide them.")
print("Enter 'q' to quit.")while True:first_number = input("\nFirst number: ")if first_number == 'q':breaksecond_number = input("Second number: ")if second_number == 'q':breaktry:answer = int(first_number) / int(second_number)except ZeroDivisionError:print("You can't divide by 0!")else:print(answer)
上述代码Python尝试执行try代码块中的除法运算, 这个代码块只包含可能导致错误的代码。依赖于try代码块成功执行的代码都放在else代码块中;在这个示例中,如果除法运算成功,就使用else代码块来打印结果 。
except代码块告诉Python,出现ZeroDivisionError异常时该怎么办。如果try代码块因除零错误而失败,我们就打印一条友好的消息,告诉用户如何避免这种错误。程序将继续运行,用户根本看不到traceback:
《Python编程从入门到实践》记录之文件异常(try-except-else代码块)相关推荐
- 《Python编程从入门到实践》16.2.6收盘价均值,代码理解
在学习<Python编程从入门到实践>16.2.6收盘价均值这块时,代码不是很清晰,里面有lambda法则等,可能作者不想涉及太多高级内容所以没有详细写,自己把自己的理解过程记录如下. 本 ...
- python编程从入门到实践第九章——类
相关文章链接: python编程从入门到实践第二章--变量和简单数据类型 python编程从入门到实践第三章--列表简介 python编程从入门到实践第四章--操作列表 python编程从入门到实践第 ...
- 《Python编程从入门到实践》记录之json模块(数据存储)
模块json让你能够将简单的Python数据结构转储到文件中, 并在程序再次运行时加载该文件中的数据. 你还可以使用json在Python程序之间分享数据.更重要的是,JSON数据格式并非Python ...
- 《Python编程从入门到实践》记录之Python函数返回值
目录 1.返回简单值 2.返回字典 3.结合使用函数和while循环 更多关于Python函数的知识见如下博文: <Python编程从入门到实践>记录之Python函数定义.使用 < ...
- 《Python编程从入门到实践》记录之第7章 用户输入(input)和while 循环总结(思维导图)
有关input函数可参考博文<Python编程从入门到实践>记录之input()函数的详细介绍. 有关while循环可参考博文<Python编程从入门到实践>记录之while循 ...
- 《Python编程从入门到实践》记录之while循环简介(break、continue)
目录 1.使用while循环让用户选择何时退出 2.使用break退出循环 3.使用continue返回循环开头 4.while循环处理列表和字典--在列表之间移动元素 5.while循环处理列表和字 ...
- 《Python编程从入门到实践》记录之求模运算符
处理数值信息时, 求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数. 如果一个数可被另一个数整除,余数就为0,因此求模运算符将返回0. 可利用这一点来判断一个数是奇数还是偶数: #!/us ...
- Python编程从入门到实践 第十章:文件和异常 练习答案记录
Python编程从入门到实践 第十章:文件和异常 练习答案记录 练习题导航 Python编程从入门到实践 第十章:文件和异常 练习答案记录 10.1 从文件中读取数据 10.1.1 读取整个文件 10 ...
- Python语法学习测试记录(Python编程从入门到实践——Eric Matthes著)
注:工作之余,学习一门脚本语言,选择了当下火热的Python.2020-05-27日开始学习Python基础语法,期间参考<Python编程从入门到实践--Eric Matthes著>一书 ...
- 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)
<Python编程从入门到实践>第2章变量和简单数据类型知识总结:
最新文章
- javascript的知识总结
- matlab并联负荷模块,Matlab-SimPowerSystems-Elements模块使用说明
- python IDE- IDLE
- GridView不能添加头布局,并且scrollView与GridView冲突导致一些页面无法融合
- 招不到产品经理?送你160000+产品经理
- MongoDB命令--自用记录
- 曝!BAT大厂NLP学习进阶之法~
- eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了
- 生产环境linux下安装两个及两个以上tomcat实践
- SecureCRT防止自动断开
- DB2数据库安全的12条军规
- 找到源码了!使用python+机器学习方法进行情感分析(详细步骤)
- 阿里27个炸天的开源项目,值得收藏!
- MySql 把B表数据插入到A表中
- 手动抛出异常_超实用:关于Java异常设计和处理
- 浏览器软件下载,点击超链接、图标等直接下载(前后端代码)
- 汽车电子技术——CAN总线系统
- Proteus8仿真STM32F103R6的电压轨道问题
- 视频转换器怎样将QSV格式转换MP4视频
- python 实验七 字典与集合 (下)
热门文章
- matlab 贝叶斯工具箱,matlab的BNT贝叶斯工具箱错误求教
- mysql报904_数据库错误码[-904]
- Oracle 实验5 视图与索引
- 生成有时间限制的二维码_二维码竟有被用完的一天!看到截止日期后,网友:虚惊一场...
- 计算机网络的自我介绍和评价,计算机网络自我介绍范文
- 80网口打印机ip固定工具_打印机网络打印
- 师范生计算机硬件技能怎么填,浅析对师范生教育技术能力培养与发展问题的思考的论文...
- Modbus​协议​深入​讲解_NI
- The J2EE Architect's Handbook讀書筆記(一)
- IdentityServer4专题之二:OpenID介绍