Python try/except/finally等
Python try/except/finally等
- x = 'abc'
- def fetcher(obj, index):
- return obj[index]
- fetcher(x, 4)
输出:
- File "test.py", line 6, in <module>
- fetcher(x, 4)
- File "test.py", line 4, in fetcher
- return obj[index]
- IndexError: string index out of range
第一: try不仅捕获异常,而且会恢复执行
- def catcher():
- try:
- fetcher(x, 4)
- except:
- print "got exception"
- print "continuing"
输出:
- got exception
- continuing
第二:无论try是否发生异常,finally总会执行
- def catcher():
- try:
- fetcher(x, 4)
- finally:
- print 'after fecth'
输出:
- after fecth
- Traceback (most recent call last):
- File "test.py", line 55, in <module>
- catcher()
- File "test.py", line 12, in catcher
- fetcher(x, 4)
- File "test.py", line 4, in fetcher
- return obj[index]
- IndexError: string index out of range
第三:try无异常,才会执行else
- def catcher():
- try:
- fetcher(x, 4)
- except:
- print "got exception"
- else:
- print "not exception"
输出:
- got exception
- def catcher():
- try:
- fetcher(x, 2)
- except:
- print "got exception"
- else:
- print "not exception"
输出:
- not exception
else作用:没有else语句,当执行完try语句后,无法知道是没有发生异常,还是发生了异常并被处理过了。通过else可以清楚的区分开。
第四:利用raise传递异常
- def catcher():
- try:
- fetcher(x, 4)
- except:
- print "got exception"
- raise
输出:
- got exception
- Traceback (most recent call last):
- File "test.py", line 37, in <module>
- catcher()
- File "test.py", line 22, in catcher
- fetcher(x, 4)
- File "test.py", line 4, in fetcher
- return obj[index]
- IndexError: string index out of range
raise语句不包括异常名称或额外资料时,会重新引发当前异常。如果希望捕获处理一个异常,而又不希望
异常在程序代码中消失,可以通过raise重新引发该异常。
第五:except(name1, name2)
- def catcher():
- try:
- fetcher(x, 4)
- except(TypeError, IndexError):
- print "got exception"
- else:
- print "not exception"
捕获列表列出的异常,进行处理。若except后无任何参数,则捕获所有异常。
- def catcher():
- try:
- fetcher(x, 4)
- except:
转载于:https://www.cnblogs.com/jp927/p/4535416.html
Python try/except/finally等相关推荐
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- python 位运算与等号_Python 运算符
和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...
- python减小内存占用_如何将Python内存占用缩小20倍?
当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...
- python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
- Python gRPC 安装
1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...
最新文章
- 从iOS证书申请到签名文件生成
- 解读|智能技术“核聚变”催生智能经济,将拉动十万亿市场
- mysql启动错误1067进程意外终止的解决方法
- aspose.pdf for java_Java 开发者最困惑的四件事
- FB高管:计划明年推出数字货币Diem和数字钱包Novi
- 华为鸿蒙产业链股票,华为P40或用鸿蒙 华为产业链概念股一览
- 《树莓派Python编程入门与实战》——2.1 了解Linux
- antdesign 柱状图_以Ant Design为例:看B端设计的基本套路
- 【华为云技术分享】Linux内核源码结构(1)
- UI素材模板|网站后台管理的表单可临摹优秀模板
- Kruskal 算法——并查集
- Atitit 核心技术有哪些一般 目录 第一章 Rest调用交互	2 第二章 	2 第三章 Cmd调用交互	2 第四章 	2 第五章 爬虫技术	2 第一节 Httpclient	2 第二节 Html
- 川大scu显示无法连接认证服务器,win10锐捷客户端无法认证服务器怎么办?-处理win10锐捷客户端认证失败的方法 - 河东软件园...
- 【HAOI2009】【毛毛虫】【树形dp】
- Ubuntu14.04 Firefox无法播放视频
- NSSCTF Round#4 Web WP
- 利用爬虫去除acg视频软件广告
- 关键信息基础设施保护条例_五个图表:读懂网络安全等级保护制度与关键信息基础设施保护制度...
- 一毕业就被抢光的​高薪专业,竟然是这些!
- 科技与生产力,芯片在科技界的江湖地位
热门文章
- 【HRBUST - 1054 】Brackets! Brackets! (括号匹配,思维,STL栈)
- 【牛客161 - A】字符串(尺取法,桶标记法)
- 视觉SLAM十四讲(2):初识SLAM
- 1.How Models work
- echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件
- android t类型参数,数据绑定Android – 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
- leetcode580. 统计各专业学生人数(SQL)
- leetcode235. 二叉搜索树的最近公共祖先
- java Map统计字符串中元素的数量
- 密码学在区块链隐私保护中的应用学习