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三引号输出方法)
- pythonselenium怎么设置元素(Python2 Selenium元素定位的实现8种)
- python获取字符串类型(python3利用ctypes传入一个字符串类型的列表方法)
- python浮点型和整数型(实例讲解Python中浮点型的基本内容)
- python怎么装opencv(Python基于opencv实现的简单画板功能示例)
- python撤回的微信消息怎么看(Python实现微信消息防撤回功能的实例代码)
- python装饰器语法与应用(python装饰器简介---这一篇也许就够了推荐)
- python编写一个名片(详解Python做一个名片管理系统)
- python搭建django框架(详解Python网络框架Django和Scrapy安装指南)
- pythonflask编写接口(Python Flask框架模板操作实例分析)
- python绘折线图数据(python2.7使用plotly绘制本地散点图和折线图)
- python3标准库资源(Python3标准库总结)
- python3json序列化(Python3.5 Json与pickle实现数据序列化与反序列化操作示例)
- python中的time时间模块使用知识(python实现简单日期工具类)
- 基于pythonopencv的图片识别(Python Opencv实现图像轮廓识别功能)
- pythonshell入门教程(python获取交互式ssh shell的方法)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
- 鱿鱼炒蒜苔不是黑暗料理,这样做清香扑鼻,鲜美脆嫩,开胃又下饭(鱿鱼炒蒜苔不是黑暗料理)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
- 远离 五毛食品 洛阳80后妈妈发明的 飞行棋 成校园爆款 玩具(远离五毛食品)
- 失传的古代飞行棋游戏 六博(失传的古代飞行棋游戏)
- 感冒要吃什么药(猫咪感冒要吃什么药)
热门推荐
- dockerfile构建mysql镜像并初始化(docker-compose基于MySQL8部署项目的实现)
- https服务器怎么打开(网站服务器配置是选HTTP还是HTTPS?)
- 优秀的canvas背景特效网站(基于canvas实现超炫酷的流水灯效果)
- python抓取天气数据(Python实战之制作天气查询软件)
- python人脸识别库(python3人脸识别的两种方法)
- python pdf文件操作(Python常见读写文件操作实例总结文本、json、csv、pdf等)
- sql server新建用户无法登录(sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法)
- javascript如何操作文档元素(JavaScript操作元素实例大全)
- easyUI DataGrid 显示可排序的列
- apache持续连接时间设置(Apache增加最大连接数的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9