python try/except/finally
时间:2022-04-23
本文章向大家介绍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:
print "got exception"
- Elasticsearch Javascript API增删改查
- Oracle二三事之 Oracle SPARC SuperCluster的九大技术优势
- 两个 viewports 的故事-第二部分
- 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
- AngularJS 技术总结
- 《linux c编程指南》学习手记5
- AngularJS API之bootstrap启动
- 通过 JS 判断页面是否有滚动条的简单方法
- Log4j官方文档翻译(六、日志的级别)
- AngularJS API之isXXX()
- 《linux c编程指南》学习手记4
- Kibana中doc与search策略的区别
- jQuery 图片查看插件 Magnify 开发简介(仿 Windows 照片查看器)
- Log4j官方文档翻译(五、日志输出的方法)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法