Python异常处理之finally
python异常处理
try:这里放置可能出错的代码
except Exception as e:这里放置try出现异常时,对于异常进行处理的代码
else:这里放置try没有出现异常继续执行的代码
finally:这里放置的是无论代码是否出现异常都会执行的代码
作为一名python初学者,我对异常处理的finally很感兴趣
对于finally功能的一般解释
无论 try 块是否引发错误,都将始终执行 finally 块
开始看起来没什么问题
比如下面这段代码:
def add_num():try:num1 = 1num2 = 0res = num1 / num2print(f'结果是:{res}')except Exception as e:print(f"出错了,错误类型是:{e}")finally:print("add_num函数执行完毕")print(add_num())# 出错了,错误类型是:division by zero
# add_num函数执行完毕
# None
但是如果except语句里的print变成了return,会怎么样呢
我们知道函数里遇到return 程序就结束了,但是你看下面的代码,奇怪的事出现了
def add_num():try:num1 = 1num2 = 0res = num1 / num2except Exception as e:return f"出错了,错误类型是:{e}"finally:print("add_num函数执行完毕")print(add_num())# add_num函数执行完毕
# 出错了,错误类型是:division by zero
异常处理中遇到return的时候竟然跳过了,跑去执行finally里的语句,最后才执行return
遇到这种情况,我很是疑惑,专门去查了资料,才明白为什么这样
对异常处理中finally正确完整的解释
无论前面try和except怎么样,python一定会保证finally的语句得执行完!
Python的一切设计都是围绕着这个核心思想来的,费尽心机就是在做这件事情。
因此,前面try子句(clause),或者except子句中如果有会导致程序终止的异常,比如return,那么 python会先把这个封存起来,等到finally执行完再把异常抛出来
所以你能看到异常出现在 finally输出结果之后的,意不意外?
Python异常处理之finally相关推荐
- python示例异常处理与程序调试_笔记:Python异常处理与程序调试
Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...
- Python 异常处理--raise函数用法
Python 异常处理--raise函数用法 参考文章: (1)Python 异常处理--raise函数用法 (2)https://www.cnblogs.com/darkgui34/p/405074 ...
- python异常处理--try except else raise finally
python异常处理--try except else raise finally 参考文章: (1)python异常处理--try except else raise finally (2)http ...
- python 异常处理 try except
python 异常处理 try except 参考文章: (1)python 异常处理 try except (2)https://www.cnblogs.com/brave1/p/10252739. ...
- python异常处理(基础)
python异常处理(基础) 参考文章: (1)python异常处理(基础) (2)https://www.cnblogs.com/fnng/p/3518202.html 备忘一下.
- python处理流程-Python异常处理大全(二)
原标题:Python异常处理大全(二) 本文是Python异常处理教程的第二部分,上部分我们简单的介绍了几种异常,及其处理办法,这部分我们将更详细地对Python中产生的异常处理方法进行探讨. 函数使 ...
- 十一、Python异常处理
Python异常处理 异常抛出机制,为程序开发人员提供了一种在运行时发现错误,进行回复处理,然后继续执行的能力 #!/usr/bin/python try: open('abc.txt') excep ...
- Python异常处理体系简介(1)
http://developer.51cto.com/art/200902/111535.htm Python异常处理体系 1.Python内建异常体系结构 The class hierarchy f ...
- python异常处理_汇总三大python异常处理、自定义异常、断言原理与用法分析
本文实例讲述了python异常处理.自定义异常.断言原理与用法.分享给大家供大家参考,具体如下: 什么是异常: 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象, ...
- 【Python】1054 求平均值(Python异常处理练习)
1. 题目 2. 代码 重坑,读题不仔细,导致耗时多. 题目中合法数字当只用一个的时候,输出的结果中的是number,而不是numbers # https://pintia.cn/problem-se ...
最新文章
- UA MATH566 统计理论1 充分统计量例题答案3
- 大数据启蒙--理论知识
- eclipse下拉框里的选项怎么鼠标单击表判断_领导让我预测下一年销量,怎么办?...
- lol最克制诺手的英雄_上路克制诺手的英雄,他只需要平A就好了!
- 中国开源年会 COSCon 2018 今起接受报名!
- Linux NTP时间服务器
- 寻找最大的k个数问题
- C++ delete的三种面貌
- ThreadLocal 遇上线程池的问题及解决办法
- dfs记忆化搜索(带限制的选择问题) 讲解:LeetCode打家劫舍||| / 蓝桥 地宫取宝/蓝桥 k进制数//剪格子//方格分割
- 深度学习:循环神经网络RNN
- 第一个shell脚本——修改配置文件
- java中元数据是什么_java 元数据
- 【SDPVRP问题】基于遗传算法求解同时取送货的车辆路径问题含Matlab代码
- 视频加密并上传至oss实现高并发访问
- ppoe拨号被远程计算机终止,Windows各操作系统常见PPPoE拨号错误代码说明
- 现有开发语言以及适用范围
- DELPHI盒子FTP登录地址及用户密码
- openldap中的Mirror mode模式中的主主同步
- 构建地形系统(翻译)1