目录

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代码块)相关推荐

  1. 《Python编程从入门到实践》16.2.6收盘价均值,代码理解

    在学习<Python编程从入门到实践>16.2.6收盘价均值这块时,代码不是很清晰,里面有lambda法则等,可能作者不想涉及太多高级内容所以没有详细写,自己把自己的理解过程记录如下. 本 ...

  2. python编程从入门到实践第九章——类

    相关文章链接: python编程从入门到实践第二章--变量和简单数据类型 python编程从入门到实践第三章--列表简介 python编程从入门到实践第四章--操作列表 python编程从入门到实践第 ...

  3. 《Python编程从入门到实践》记录之json模块(数据存储)

    模块json让你能够将简单的Python数据结构转储到文件中, 并在程序再次运行时加载该文件中的数据. 你还可以使用json在Python程序之间分享数据.更重要的是,JSON数据格式并非Python ...

  4. 《Python编程从入门到实践》记录之Python函数返回值

    目录 1.返回简单值 2.返回字典 3.结合使用函数和while循环 更多关于Python函数的知识见如下博文: <Python编程从入门到实践>记录之Python函数定义.使用 < ...

  5. 《Python编程从入门到实践》记录之第7章 用户输入(input)和while 循环总结(思维导图)

    有关input函数可参考博文<Python编程从入门到实践>记录之input()函数的详细介绍. 有关while循环可参考博文<Python编程从入门到实践>记录之while循 ...

  6. 《Python编程从入门到实践》记录之while循环简介(break、continue)

    目录 1.使用while循环让用户选择何时退出 2.使用break退出循环 3.使用continue返回循环开头 4.while循环处理列表和字典--在列表之间移动元素 5.while循环处理列表和字 ...

  7. 《Python编程从入门到实践》记录之求模运算符

    处理数值信息时, 求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数. 如果一个数可被另一个数整除,余数就为0,因此求模运算符将返回0. 可利用这一点来判断一个数是奇数还是偶数: #!/us ...

  8. Python编程从入门到实践 第十章:文件和异常 练习答案记录

    Python编程从入门到实践 第十章:文件和异常 练习答案记录 练习题导航 Python编程从入门到实践 第十章:文件和异常 练习答案记录 10.1 从文件中读取数据 10.1.1 读取整个文件 10 ...

  9. Python语法学习测试记录(Python编程从入门到实践——Eric Matthes著)

    注:工作之余,学习一门脚本语言,选择了当下火热的Python.2020-05-27日开始学习Python基础语法,期间参考<Python编程从入门到实践--Eric Matthes著>一书 ...

  10. 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)

    <Python编程从入门到实践>第2章变量和简单数据类型知识总结:

最新文章

  1. javascript的知识总结
  2. matlab并联负荷模块,Matlab-SimPowerSystems-Elements模块使用说明
  3. python IDE- IDLE
  4. GridView不能添加头布局,并且scrollView与GridView冲突导致一些页面无法融合
  5. 招不到产品经理?送你160000+产品经理
  6. MongoDB命令--自用记录
  7. 曝!BAT大厂NLP学习进阶之法~
  8. eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了
  9. 生产环境linux下安装两个及两个以上tomcat实践
  10. SecureCRT防止自动断开
  11. DB2数据库安全的12条军规
  12. 找到源码了!使用python+机器学习方法进行情感分析(详细步骤)
  13. 阿里27个炸天的开源项目,值得收藏!
  14. MySql 把B表数据插入到A表中
  15. 手动抛出异常_超实用:关于Java异常设计和处理
  16. 浏览器软件下载,点击超链接、图标等直接下载(前后端代码)
  17. 汽车电子技术——CAN总线系统
  18. Proteus8仿真STM32F103R6的电压轨道问题
  19. 视频转换器怎样将QSV格式转换MP4视频
  20. python 实验七 字典与集合 (下)

热门文章

  1. matlab 贝叶斯工具箱,matlab的BNT贝叶斯工具箱错误求教
  2. mysql报904_数据库错误码[-904]
  3. Oracle 实验5 视图与索引
  4. 生成有时间限制的二维码_二维码竟有被用完的一天!看到截止日期后,网友:虚惊一场...
  5. 计算机网络的自我介绍和评价,计算机网络自我介绍范文
  6. 80网口打印机ip固定工具_打印机网络打印
  7. 师范生计算机硬件技能怎么填,浅析对师范生教育技术能力培养与发展问题的思考的论文...
  8. Modbus​协议​深入​讲解_NI
  9. The J2EE Architect's Handbook讀書筆記(一)
  10. IdentityServer4专题之二:OpenID介绍