python中tryexcept的用法(对python中的try、except、finally 执行顺序详解)
python中tryexcept的用法
对python中的try、except、finally 执行顺序详解如下所示:
|
def test1(): try : print ( 'to do stuff' ) raise Exception( 'hehe' ) print ( 'to return in try' ) return 'try' except Exception: print ( 'process except' ) print ( 'to return in except' ) return 'except' finally : print ( 'to return in finally' ) return 'finally' test1Return = test1() print ( 'test1Return : ' + test1Return) |
输出:
|
to do stuff process except to return in except to return in finally test1Return : finally |
在 try 中 raise一个异常,就立刻转入 except 中执行,在except 中遇到 return 时,就强制转到 finally 中执行, 在 finally 中遇到 return 时就返回
|
def test2(): try : print ( 'to do stuff' ) print ( 'to return in try' ) return 'try' except Exception: print ( 'process except' ) print ( 'to return in except' ) return 'except' finally : print ( 'to return in finally' ) return 'finally' test2Return = test2() print ( 'test1Return : ' + test2Return) |
输出:
|
to do stuff to return in try to return in finally test2Return : finally |
这里在 try 中没有抛出异常,因此不会转到 except 中,但是在try 中遇到return时,也会立即强制转到finally中执行,并在finally中返回
test1和test2得到的结论:
无论是在try还是在except中,遇到return时,只要设定了finally语句,就会中断当前的return语句,跳转到finally中执行,如果finally中遇到return语句,就直接返回,不再跳转回try/excpet中被中断的return语句
|
def test3(): i = 0 try : i + = 1 print ( 'i in try : %s' % i) raise Exception( 'hehe' ) except Exception: i + = 1 print ( 'i in except : %s' % i) return i finally : i + = 1 print ( 'i in finally : %s' % i ) print ( 'test3Return : %s' % test3()) |
输出:
|
i in try : 1 i in except : 2 i in finally : 3 test3Return : 2 def test4(): i = 0 try : i + = 1 return i finally : i + = 1 print ( 'i in finally : %s' % i ) print ( 'test4Return : %s' % test4()) |
输出
|
i in finally : 2 test4Return : 1 |
test3和test4得到的结论:
在except和try中遇到return时,会锁定return的值,然后跳转到finally中,如果finally中没有return语句,则finally执行完毕之后仍返回原return点,将之前锁定的值返回(即finally中的动作不影响返回值),如果finally中有return语句,则执行finally中的return语句。
|
def test5(): for i in range ( 5 ): try : print ( 'do stuff %s' % i) raise Exception(i) except Exception: print ( 'exception %s' % i) continue finally : print ( 'do finally %s' % i) test5() |
输出
|
do stuff 0 exception 0 do finally 0 do stuff 1 exception 1 do finally 1 do stuff 2 exception 2 do finally 2 do stuff 3 exception 3 do finally 3 do stuff 4 exception 4 do finally 4 |
test5得到的结论:
在一个循环中,最终要跳出循环之前,会先转到finally执行,执行完毕之后才开始下一轮循环
以上这篇对python中的try、except、finally 执行顺序详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/u010159842/article/details/54924940
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- python 串口图形化(python使用MQTT给硬件传输图片的实现方法)
- python中test函数用法(Python TestCase中的断言方法介绍)
- python教程第126节(Python 学习教程之networkx)
- python面向对象的介绍(Python面向对象思想与应用入门教程类与对象)
- python关于微信的模块(python基于itchat模块实现微信防撤回)
- python同步钉钉用户(python 调用钉钉机器人的方法)
- python网络爬虫案例实战(python爬取cnvd漏洞库信息的实例)
- 用python制作一个简单的小程序(Python简单基础小程序的实例代码)
- python自己做个定时器(对python周期性定时器的示例详解)
- python改变图片的色深设置(Python实现去除图片中指定颜色的像素功能示例)
- python查找含特定字符的字符串(Python实现查找字符串数组最长公共前缀示例)
- python 获取天气预报(详解用python自制微信机器人,定时发送天气预报)
- python处理时间序列常用方法汇总(python整小时 整天时间戳获取算法示例)
- 简述python2与python3的不同点(Python2与Python3的区别实例分析)
- python3列表的使用教程(对Python3 pyc 文件的使用详解)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
热门推荐
- 阿里云域名解析地址写什么(阿里云 Linux 服务器内部无法解析域名问题解决方法)
- h5打开小程序点允许(html5跳转小程序wx-open-launch-weapp踩坑)
- vue各组件如何引用(Vue局部组件数据共享Vue.observable的使用)
- pycharm如何自定义模板(对Pycharm创建py文件时自定义头部模板的方法详解)
- mysql中timestamp类型的CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP属性
- css控制表格换行
- 有哪些优秀的web服务器(几款比较好的WEB服务器软件推荐)
- vue验证码(vue_drf实现短信验证码)
- mysql连接查询原理(MySQL连接查询你真的学会了吗?)
- dedecms搜索功能怎么设置详细(删除dedecms 5.7里面烦人的织梦链的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9