- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
E.9 捕获多个异常
随着代码的发展,你会想要在同一行代码中捕获多个异常。举个例子,你可能想要捕获一个 TypeError,同时还有 AttributeError。如果你以为传递的是一个字典,而实际上传递的是一个列表,可能就是这种情况。它可能有一些相同的属性,但是不是所有属性。如果你需要在一行中捕获多个类型的错误,就必需在元组中编写异常,让我们看一下:
my_dict = {'foo': {}, 'bar': None, 'baz': []} for k, v in my_dict.items(): try: v.items() except (TypeError, AttributeError) as e: print "We had an issue!" print e
你应该会看到下面的输出(很可能呈现顺序不同):
We had an issue! 'list' object has no attribute 'items' We had an issue! 'NoneType' object has no attribute 'items'
我们的异常成功地捕获了两个错误并执行了异常代码块。正如你所见,意识到你需要捕获的错误的类型,并且理解语法(将其放到元组中)对你的代码来说是必需的。如果你简单地列出它们(通过一个列表或只是通过逗号分隔),你的代码可能不会正常地执行,而且你不会捕获到这两个异常。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论