python try-except-else-finally的执行顺序
2022/5/24 1:21:20
本文主要是介绍python try-except-else-finally的执行顺序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
执行顺序:第一位肯定是try,而且后边的所有操作都依赖于try,有三点特别重要:
**
(1)try无论执行成功失败,都会执行finally,
(2)try、else、except中如果有return,当代码执行到return之后,会直接跳转到finally中,开始执行finally中的所有语句,包括return,(敲黑板,是包括return的,return执行完,程序就结束了,不会再执行try、else、except中的return)
(3)当except没有捕获try中抛出的异常时,会直接执行finally,这个时候,如果finally中没有return,则finally中的代码执行完成之后,try中的异常会被抛出,但是如果finally中有return,则不会抛出异常。
**
是不是有点不太直观,那就按照下边的思路开始捋一捋:
- 我有一段代码,可能有问题,如果出现异常,我不想让他报错,怎么办?
- 答案是用try/except包裹起来,如果try中的代码没有异常,那程序就开始依次执行。如果try中报错了,就开始在except中捕获抛出的异常并进行处理,不会再将异常抛出,影响到其他代码的执行。
点击查看代码
`try: print('try') print(1/0) except Exception as e: print('报错信息')
执行结果:
try
报错信息
点击查看代码
try: print('try') # print(1/0) except Exception as e: print('报错信息') else: print('else ')
执行结果:
try
else
- 如果我们在try、except、或者else之外,还有一些必须要做的执行步骤,例如,写入文件异常时,对文件的关闭等操作,可以放在finally中。如果有finally,finally一定会执行,切记,是一定会执行。,一般是有两种情况,(1)按照上边两种执行逻辑,执行完成之后,就会执行finally,(2)如果try、except、else中如果有return,会直接跳过return,直接执行finally。。
点击查看代码
try: print('try') print(1/0) except Exception as e: print('报错信息') else: print('else ') finally: print('finally打印纸') # print(1/0) return 'finally返回值'
try
报错信息
finally打印纸
finally返回值
- Q&A:
- 如果finally中没有return,那try、else、except中的return会执行吗?
会 - 如果finally中出现异常,会被捕获吗?
finally中,如果出现异常,会直接抛出异常。 - 如果try中的异常没有被捕获,会怎么办?
如果try中的异常没有被捕获,则会直接执行finally中的代码,如果finally中有return的代码,则会直接return,不会报错,但是如果没有return, 那么finally执行完成之后,会直接将try中的异常抛出。。
这篇关于python try-except-else-finally的执行顺序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享