异常中的finally
目录
❤ finally的作用
❤ try、except、finally的执行顺序是什么
❤ 案列
finally 中不带return
finally中有return
python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm=1001.2014.3001.5502
❤ finally的作用
finally内的代码不管有无异常发生,都会执行。具体来说:
- 无论是否发生了异常,一定会执行 finally 的代码块
- 在函数中,即便在 try 或 except 中进行了 return 也依旧会执行 finally 代码块
- try 语法 至少要伴随 except 或 finally 中的一个
❤ try、except、finally的执行顺序是什么
简单的说,
try + except 的组合,大家都很清楚了:
try 中无异常,不执行except
try中遇到异常,就停止当前语句, 去执行except中的语句
finally 的作用是,
try 和 except 执行中:
1. 执行完最后一个语句后(如最后一条语句不是return)
2. return Value 前
都会触发finally的执行.
而在finally中的语句执行后,同样有两种情况:
1.如果finally中有return ,那么代码就在finally中返回。
2.如果finally中没有return ,那么代码会返回到触发finally的语句处,继续执行。
(即是说,如果是try/except中的 return Value 触发了finally ,且finally中没有return,那么执行完finally后,会返回去执行触发了finally的那个 return Value)
❤ 案列
finally 中不带return
def tef_raise():try:print("I am in 'try'")raise()return 'try'except:print("I am in 'except'")return 'except'finally:print("I am in 'finally ,and i don't return'")
输出:
I am in 'try'
I am in 'except'
I am in 'finally ,and i don't return''except'
可见,执行顺序是 try->except->finally ->except中的 return
finally中有return
def tef_raise():try:print("I am in 'try'")raise()return 'try'except:print("I am in 'except'")return 'except'finally:print("I am in 'finally")return 'finally'
输出:
I am in 'try'
I am in 'except'
I am in 'finally
'finally'
异常中的finally相关推荐
- Java异常中受检异常非受检异常与RuntimeException异常关系
Error 和 Exception: 所有异常都是 Throwable 的子类,分为 Error 和 Exception.Error 是 Java 运行时系统的内部错误和资 源耗尽错误,例如 Stac ...
- c++异常的层次结构(继承在异常中的应用)
异常的层次结构(继承在异常中的应用 应用 案例 应用 异常是类 – 创建自己的异常类 异常派生 异常中的数据:数据成员 按引用传递异常 在异常中使用虚函数 案例 设计一个数组类 MyArra ...
- 上下文异常中的上下文属性_在没有适当上下文的情况下引发异常是一种不良习惯...
上下文异常中的上下文属性 Allison Anders等人的<四个房间>(1995). 我不断重复同样的错误. 因此,该停止并制定规则以防止这种情况了. 错误不是致命的,但很烦人. 当查看 ...
- java异常中的Error和Exception的区别是什么?
java异常中的Error和Exception的区别是什么? 参考文章: (1)java异常中的Error和Exception的区别是什么? (2)https://www.cnblogs.com/Tr ...
- java异常中的finally(一)
java异常中的finally(一) 参考文章: (1)java异常中的finally(一) (2)https://www.cnblogs.com/liaoxiaolao/p/9586134.html ...
- C++_enhance-Record11—异常的层次结构(继承在异常中的应用)
目录 继承在异常中的应用 经验之谈 总体代码 继承在异常中的应用 结合案例进行记录:设计一个数组类 MyArray,重载[]操作.那么,先把架子都搭起来: class MyArray { public ...
- C++异常中的堆栈跟踪
C++异常中的堆栈跟踪就是当程序抛出异常时,能够把抛出异常的语句所在的文件名.函数以及其它上层函数信息都打印出来. 堆栈跟踪意义重大:在实际的生产过程中,发现代码中bug要比解决bug更加费事费力,而 ...
- Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别常见的几种异常
Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别 一.概述 在java异常体系中,要打印异常信息,可以通过:e.getMess ...
- 解析java异常中的finally关键字
解析java异常中的finally关键字 1 含义 try-catch.finally里面的可选结构 2 作用 2.1 内容 finally声明的是一定会被执行的代码 2.2 遇到以下三种情况也还是会 ...
- 你知道吗?你可以在异常中解退调用栈
[原文作者]:Bill Horst [原文链接]:Did you know? You can unwind the call stack from exceptions (Bill Horst) 解退 ...
最新文章
- 软件缺陷预测的两种定义
- C/C++获得当前系统时间
- html显示任务进度,(原创)asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)...
- boost::iostreams::example::container_source用法的测试程序
- 数据不足,如何进行迁移学习?
- 48 CO配置-控制-获利能力分析-创建经营组织
- Emacs lisp 列表与函数的区别
- php websocket ipv6,原生socket支持ipv6
- 高性能加速深度学习算法
- WebLogic—安装
- matlab回归系数 t检验6,matlab做回归分析时,能做t检验吗?
- 抖音多闪数次声明被打脸 法院正式裁定抖音违规
- python程序设计实践教程张莉_张莉python
- SELECT list is not in GROUP BY clause and contains nonaggregated column 异常
- anaconda3更新后,菜单栏中没有Anaconda Promt
- python之WeChat撩妹神奇
- 关于现今发现最早北洋底标年代和史料不同的疑惑
- Loki 收集Nginx日志以 grafana 可视化展示
- sudo,su, -的区别
- NMAP手册中文版(附英文解释版)
热门文章
- Java网络编程UDP协议--模拟英雄联盟游戏聊天骂人变*--优化网络环境从你我做起
- EasyUI年-月日期格式的日期时间控件+行内编辑的年-月日期格式的日期时间控件
- 惠安高考状元2021成绩查询,2021年泉州高考状元名单公布,泉州文理科状元是谁多少分...
- Swift 之添加点击事件
- python彩虹代码_python绘制彩虹图
- OpenCV:金字塔LK光流法
- hive转16进制unhex_Hive,
- MyBatis之SessionFactory与Session简介说明
- 【算法】通俗易懂的PID算法
- Favorite Setting