目录

❤  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相关推荐

  1. Java异常中受检异常非受检异常与RuntimeException异常关系

    Error 和 Exception: 所有异常都是 Throwable 的子类,分为 Error 和 Exception.Error 是 Java 运行时系统的内部错误和资 源耗尽错误,例如 Stac ...

  2. c++异常的层次结构(继承在异常中的应用)

    异常的层次结构(继承在异常中的应用 应用 案例 应用 异常是类 – 创建自己的异常类 异常派生 异常中的数据:数据成员 按引用传递异常 在异常中使用虚函数 案例 设计一个数组类 MyArra ...

  3. 上下文异常中的上下文属性_在没有适当上下文的情况下引发异常是一种不良习惯...

    上下文异常中的上下文属性 Allison Anders等人的<四个房间>(1995). 我不断重复同样的错误. 因此,该停止并制定规则以防止这种情况了. 错误不是致命的,但很烦人. 当查看 ...

  4. java异常中的Error和Exception的区别是什么?

    java异常中的Error和Exception的区别是什么? 参考文章: (1)java异常中的Error和Exception的区别是什么? (2)https://www.cnblogs.com/Tr ...

  5. java异常中的finally(一)

    java异常中的finally(一) 参考文章: (1)java异常中的finally(一) (2)https://www.cnblogs.com/liaoxiaolao/p/9586134.html ...

  6. C++_enhance-Record11—异常的层次结构(继承在异常中的应用)

    目录 继承在异常中的应用 经验之谈 总体代码 继承在异常中的应用 结合案例进行记录:设计一个数组类 MyArray,重载[]操作.那么,先把架子都搭起来: class MyArray { public ...

  7. C++异常中的堆栈跟踪

    C++异常中的堆栈跟踪就是当程序抛出异常时,能够把抛出异常的语句所在的文件名.函数以及其它上层函数信息都打印出来. 堆栈跟踪意义重大:在实际的生产过程中,发现代码中bug要比解决bug更加费事费力,而 ...

  8. Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别常见的几种异常

    Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别 一.概述 在java异常体系中,要打印异常信息,可以通过:e.getMess ...

  9. 解析java异常中的finally关键字

    解析java异常中的finally关键字 1 含义 try-catch.finally里面的可选结构 2 作用 2.1 内容 finally声明的是一定会被执行的代码 2.2 遇到以下三种情况也还是会 ...

  10. 你知道吗?你可以在异常中解退调用栈

    [原文作者]:Bill Horst [原文链接]:Did you know? You can unwind the call stack from exceptions (Bill Horst) 解退 ...

最新文章

  1. 软件缺陷预测的两种定义
  2. C/C++获得当前系统时间
  3. html显示任务进度,(原创)asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)...
  4. boost::iostreams::example::container_source用法的测试程序
  5. 数据不足,如何进行迁移学习?
  6. 48 CO配置-控制-获利能力分析-创建经营组织
  7. Emacs lisp 列表与函数的区别
  8. php websocket ipv6,原生socket支持ipv6
  9. 高性能加速深度学习算法
  10. WebLogic—安装
  11. matlab回归系数 t检验6,matlab做回归分析时,能做t检验吗?
  12. 抖音多闪数次声明被打脸 法院正式裁定抖音违规
  13. python程序设计实践教程张莉_张莉python
  14. SELECT list is not in GROUP BY clause and contains nonaggregated column 异常
  15. anaconda3更新后,菜单栏中没有Anaconda Promt
  16. python之WeChat撩妹神奇
  17. 关于现今发现最早北洋底标年代和史料不同的疑惑
  18. Loki 收集Nginx日志以 grafana 可视化展示
  19. sudo,su, -的区别
  20. NMAP手册中文版(附英文解释版)

热门文章

  1. Java网络编程UDP协议--模拟英雄联盟游戏聊天骂人变*--优化网络环境从你我做起
  2. EasyUI年-月日期格式的日期时间控件+行内编辑的年-月日期格式的日期时间控件
  3. 惠安高考状元2021成绩查询,2021年泉州高考状元名单公布,泉州文理科状元是谁多少分...
  4. Swift 之添加点击事件
  5. python彩虹代码_python绘制彩虹图
  6. OpenCV:金字塔LK光流法
  7. hive转16进制unhex_Hive,
  8. MyBatis之SessionFactory与Session简介说明
  9. 【算法】通俗易懂的PID算法
  10. Favorite Setting