Python try/except/finally等

[代码块]
  1. x = 'abc'
  2. def fetcher(obj, index):
  3. return obj[index]
  4. fetcher(x, 4)

输出:

  1. File "test.py", line 6, in <module>
  2. fetcher(x, 4)
  3. File "test.py", line 4, in fetcher
  4. return obj[index]
  5. IndexError: string index out of range

第一: try不仅捕获异常,而且会恢复执行

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. except:
  5. print "got exception"
  6. print "continuing"

输出:

  1. got exception
  2. continuing

第二:无论try是否发生异常,finally总会执行

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. finally:
  5. print 'after fecth'

输出:

  1. after fecth
  2. Traceback (most recent call last):
  3. File "test.py", line 55, in <module>
  4. catcher()
  5. File "test.py", line 12, in catcher
  6. fetcher(x, 4)
  7. File "test.py", line 4, in fetcher
  8. return obj[index]
  9. IndexError: string index out of range

第三:try无异常,才会执行else

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. except:
  5. print "got exception"
  6. else:
  7. print "not exception"

输出:

  1. got exception
  1. def catcher():
  2. try:
  3. fetcher(x, 2)
  4. except:
  5. print "got exception"
  6. else:
  7. print "not exception"

输出:

  1. not exception

else作用:没有else语句,当执行完try语句后,无法知道是没有发生异常,还是发生了异常并被处理过了。通过else可以清楚的区分开。

第四:利用raise传递异常

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. except:
  5. print "got exception"
  6. raise

输出:

  1. got exception
  2. Traceback (most recent call last):
  3. File "test.py", line 37, in <module>
  4. catcher()
  5. File "test.py", line 22, in catcher
  6. fetcher(x, 4)
  7. File "test.py", line 4, in fetcher
  8. return obj[index]
  9. IndexError: string index out of range

raise语句不包括异常名称或额外资料时,会重新引发当前异常。如果希望捕获处理一个异常,而又不希望

异常在程序代码中消失,可以通过raise重新引发该异常。

第五:except(name1, name2)

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. except(TypeError, IndexError):
  5. print "got exception"
  6. else:
  7. print "not exception"

捕获列表列出的异常,进行处理。若except后无任何参数,则捕获所有异常。

  1. def catcher():
  2. try:
  3. fetcher(x, 4)
  4. except:

转载于:https://www.cnblogs.com/jp927/p/4535416.html

Python try/except/finally等相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  10. Python gRPC 安装

    1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...

最新文章

  1. 从iOS证书申请到签名文件生成
  2. 解读|智能技术“核聚变”催生智能经济,将拉动十万亿市场
  3. mysql启动错误1067进程意外终止的解决方法
  4. aspose.pdf for java_Java 开发者最困惑的四件事
  5. FB高管:计划明年推出数字货币Diem和数字钱包Novi
  6. 华为鸿蒙产业链股票,华为P40或用鸿蒙 华为产业链概念股一览
  7. 《树莓派Python编程入门与实战》——2.1 了解Linux
  8. antdesign 柱状图_以Ant Design为例:看B端设计的基本套路
  9. 【华为云技术分享】Linux内核源码结构(1)
  10. UI素材模板|网站后台管理的表单可临摹优秀模板
  11. Kruskal 算法——并查集
  12. Atitit 核心技术有哪些一般 目录 第一章 Rest调用交互 2 第二章 2 第三章 Cmd调用交互 2 第四章 2 第五章 爬虫技术 2 第一节 Httpclient 2 第二节 Html
  13. 川大scu显示无法连接认证服务器,win10锐捷客户端无法认证服务器怎么办?-处理win10锐捷客户端认证失败的方法 - 河东软件园...
  14. 【HAOI2009】【毛毛虫】【树形dp】
  15. Ubuntu14.04 Firefox无法播放视频
  16. NSSCTF Round#4 Web WP
  17. 利用爬虫去除acg视频软件广告
  18. 关键信息基础设施保护条例_五个图表:读懂网络安全等级保护制度与关键信息基础设施保护制度...
  19. 一毕业就被抢光的​高薪专业,竟然是这些!
  20. 科技与生产力,芯片在科技界的江湖地位

热门文章

  1. 【HRBUST - 1054 】Brackets! Brackets! (括号匹配,思维,STL栈)
  2. 【牛客161 - A】字符串(尺取法,桶标记法)
  3. 视觉SLAM十四讲(2):初识SLAM
  4. 1.How Models work
  5. echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件
  6. android t类型参数,数据绑定Android – 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  7. leetcode580. 统计各专业学生人数(SQL)
  8. leetcode235. 二叉搜索树的最近公共祖先
  9. java Map统计字符串中元素的数量
  10. 密码学在区块链隐私保护中的应用学习