python中的 try...except...finally 的用法

author:headsen chen

date:2018-04-09 16:22:11

try, except, finally是Python中的异常捕捉机制,通常的用法就是try..except...结合起来用,程序捕捉try语句块中的异常,如果发现异常就把异常交给except中的语句块进行处理,也就是执行except中的语句,这里except也可以结合

if...else一起使用。

例1:try中无异常时,执行try和finally中的内容

def read_file():

try:

print('aaa')

except:

print('error occurs while reading file')

finally:

print('bbbb')

read_file()

------>

aaa

bbbb

总结:当try下面的语句正常运行的时候,一直运行。运行完了后运行finaly下面的语句

例2:try中有异常时:

当try下面的语句运行后,碰到异常的时候,运行except下面的语句,最后运行finaly下面的语句,finaly语句一般做些资源释放的工作,比如关闭打开的文件等。

def read_file():

try:

print(2222222222)

print(aaa)

except:

print('error occurs while reading file')

finally:

print('bbbb')

read_file()

------>

2222222222 ----------> 证明try中正确的程序会被执行的,配到异常后在调到except部分执行异常的。

error occurs while reading file

bbbb

当然,try...except也可以结合finally使用。则将finally放在最后,finally语句块的内容通常是做一些后事的处理,比如资源释放什么的,并且finally语句块是无论如何都要执行的,即使在前面的try和except语句块中出现了return,都现

将finally语句执行完再去执行前面的return语句。下面看一个简单的例子:

例3:try...except...else的用法

else里的只有在try下面的语句全部正确执行了才会执行else,try里面有异常不会else的语句,和finaly不同,finaly是无论try里有无异常都执行

def read_file():

try:

print(2222222222)

except:

print('error occurs while reading file')

else:

print('bbbb')

read_file()

例4:取返回值1

当异常函数里的返回值取值:try里面正确执行时,整个函数的返回值采用try下面的返回值

def read_file():

try:

print(2222222222)

# print(a)

return 5

except:

print('error occurs while reading file')

return 6

finally:

print('bbbb')

print(read_file())

----->

2222222222

bbbb

5

例5:取返回值2

try里面有异常时,整个函数的返回值采用except下面的返回值

def read_file():

try:

print(2222222222)

print(a)

return 5

except:

print('error occurs while reading file')

return 6

finally:

print('bbbb')

print(read_file())

----->

2222222222

error occurs while reading file

bbbb

6

python中try的用法_python中的 try...except...finally 的用法相关推荐

  1. python常用函数的用法_python中常用函数整理

    1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object):""&qu ...

  2. python中os.path.join()的循环用法_python中使用os.path.join()

    os.path.join的详细解释请移步os.path模块 在使用的过程中,我使用如下代码: import os path = "F:/gts/gtsdate/" b = os.p ...

  3. python if函数用法_python中if条件中的Contains()函数“in”

    我对contains()in的功能做了一些研究,特别是与eq()==进行了比较,发现它可以完成许多任务.我设法回答了其中许多问题(见下文). 除了下面的用法之外,in还有其他有用的用法吗,例如对象?在 ...

  4. python正则findall函数的用法_python中正则表达式 re.findall 用法

    python中正则表达式 re.findall 用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了r ...

  5. python中strip的用法_Python中你不知道的strip()函数的妙用

    [开胃小菜] 当提到python中strip方法,想必凡接触过python的同行都知道它主要用来切除空格.有以下两种方法来实现. 方法一:用内置函数if name == 'main' : str = ...

  6. python中finally的用法_python中的finally用法

    来源:强哥  公众号:Python与数据分析   链接:https://mp.weixin.qq.com/s/6jBvyl1YoVBRyVQCdC67Sg 无论try语句中是否抛出异常,finally ...

  7. python中array的用法_Python中的numpy.array()用法

    齐次多维数组是NumPy的主要对象.它基本上是一个元素表, 这些元素都是相同类型的, 并由一个正整数元组索引.尺寸在NumPy中称为轴. NumPy的数组类称为ndarray或别名数组. numpy. ...

  8. python中的下划线_Python中的下划线详解

    这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大部分(不全是)都是一种惯例约定. 一. 单个下划线直接做变量名(_) 主要有三种情况: 1. 解释器中 _ ...

  9. python中的元类_Python中的元类(metaclass)

    提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...

  10. python中end 1 意思_python中“end=”是什么意思?_后端开发

    c语言fopen函数的用法_后端开发 在c语言中可以使用"fopen()"函数打开一个文件,该函数用于打开一个文件,其语法是"open("file a" ...

最新文章

  1. SQL语句之DWL、DCL语句
  2. Pandas数据可视化工具:图表工具-Seaborn
  3. 智慧交通day02-车流量检测实现04:卡尔曼滤波器
  4. 数据中心部署气流遏制系统需要考虑的十大要素
  5. 微信 for Mac 3.1.0 测试版发布(附安装包),新增「发朋友圈」功能
  6. 基于ZYNQ FPGA实现数据采集与传输系统设计
  7. 白噪音和粉红噪音煲机_白噪音信号的概念及基本理论
  8. VB中的format格式化函数
  9. C++11 线程对象创建后既不join()也不detach()的后果
  10. 软件架构设计-软件架构风格、分层架构
  11. 对分法求非线性方程的根
  12. 关于数字孪生的一点理解
  13. Oracle PL-SQL基础知识
  14. 说说DBA职责和目标
  15. GraphQL:你的容颜,十万光年
  16. 智慧城市建设,目前所面临的技术瓶颈是什么?
  17. 相机响应曲线、ISO详解
  18. 生成世界地图并在地图上画圆圈
  19. java实现excel的模板导出
  20. BYOD携带自己的设备办公

热门文章

  1. 【Codeforces Round #525(Div. 2)】Ehab and another another xor problem(思维+异或)
  2. 我的西皮优学习笔记(三)->仿真常见错误及其调试方法
  3. ASP.NET上传图片时,产生预览
  4. centos下svn分组权限管理
  5. 责任链模式Responsibility
  6. 使用苹果原生API进行二维码和条形码的扫描
  7. zk+LODOP打印控件使用
  8. 《惢客创业日记》2019.03.28(周四)关于“鸡肋”的产品思维
  9. 中国十大IT培训影响力品牌?哪个最好!?
  10. requests请求详解(转)