首页 > 其他分享 >5:finally结构

5:finally结构

时间:2022-11-21 18:22:46浏览次数:40  
标签:... python except try finally print 结构

try...except...finally 结构
try...except...finally 结构中,finally 块无论是否发生异常都会被执行;通常用来释放 try 块中申请的资源。

【示例】try...except...finally 结构简单测试

try:
    a = input("请输入一个被除数:")
    b = input("请输入一个除数:")
    c = float(a) / float(b)
except BaseException as e:
    print(e)
else:
    print(c)
finally:
    print("我是 finally 中的语句,无论发生异常与否,都执行!")

print("程序结束!")

运行结果:

"D:\Program Files\Python310\python.exe" D:\work\python\four\mypy07.py 
请输入一个被除数:10
请输入一个除数:6
1.6666666666666667
我是 finally 中的语句,无论发生异常与否,都执行!
程序结束!

进程已结束,退出代码0

输出异常运行结果:

"D:\Program Files\Python310\python.exe" D:\work\python\four\mypy07.py 
请输入一个被除数:10
请输入一个除数:a
could not convert string to float: 'a'
我是 finally 中的语句,无论发生异常与否,都执行!
程序结束!

【示例】读取文件,finally 中保证关闭文件资源

try:
    f = open("d:/a.txt", 'r')
    content = f.readline()
    print(content)
except BaseException as e:
    print(e)
finally:
    try:
        f.close()  # 释放资源。此处也可能会发生异常。若发生异常,则程序终止,不会继续往下执行
    except BaseException as e:
        print(e)
print("step4")

输出结果:

"D:\Program Files\Python310\python.exe" D:\work\python\four\mypy08.py 
1234567890-=
step4

发生异常的执行结果:
Traceback (most recent call last):
[Errno 2] No such file or directory: 'd:/a.txt'
File "C:/PycharmProjects/mypro_exception/my01.py", line 8, in <module>
f.close() #释放资源。此处也可能会发生异常。若发生异常,则程序终止,不会继续往下执行
NameError: name 'f' is not defined

Process finished with exit code 1

标签:...,python,except,try,finally,print,结构
From: https://www.cnblogs.com/yuanzijian/p/16912237.html

相关文章

  • 3:try_多个except结构
       上面的结构可以捕获所有的异常,工作中也很常见。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。为......
  • 4:else结构
    try...except...else结构try...except...else结构增加了“else块”。如果try块中没有抛出异常,则执行else块。如果try块中抛出异常,则执行except块,不执行else块......
  • 2:try_except基本结构
    try...一个except结构try...except是最常见的异常处理结构。结构如下:try:  被监控的可能引发异常的语句块exceptBaseException[ase]:  异常处理语句块  ......
  • JVM虚拟机(整体架构、类文件结构)我来了~~~
    虚拟机1.1发展历程1.1.1java往事​ Java诞生在一群懒惰、急躁而傲慢的程序天才之中。​ 1990年12月,Sun的工程师PatrickNaughton被当时糟糕的SunC++工具折磨的快疯......
  • 动态规划——数据结构与算法学习
    动态规划动态规划的原理其实也是将大问题划分为小问题,从而一步步获取最优解,但是适用于动态规划求解的问题,子问题往往不是独立的,是具有相互关联性。背包问题有一个背包,容......
  • 道长的算法笔记:树结构递归模型
    (一)线性结构的递归模型链表是一种天然带有递归性质的结构,当我们想要处理\(Node_A\)为首的链表,我们尝试处理\(Node_B\)为首的链表,然后再单独处理节点\(A\),类似的,......
  • tomcat_动态java项目的目录结构、与idea集成&创建web项目
    tomcat_动态java项目的目录结构静态项目和动态项目:目录结构:java动态项目的目录结构:项目的根目录WEB-INF目录:......
  • 05.结构体
    struct或structure是一个自定义数据类型,允许你包装和命名多个相关的值,从而形成一个有意义的组合。一、结构体的定义和实例化结构体于元素类型类似,它们都包含多个相关的值......
  • InnoDB体系结构及工作原理
    概念InnoDB主要包括了内存池、后台线程以及存储文件。INNODB的三大特性:插入缓存,两次写,自适应hash内存池又是由多个内存块组成的,主要包括BufferPool、redolog缓冲等,解决cpu......
  • 设计模式--结构型模式
    设计模式--结构型模式结构型模式,共七种:适配器模式(新接口用老实现类)、装饰器模式(同代理,增强)、代理模式(方法前后)、外观模式(计算机包括…)、桥接模式(中间表)、组合模式(树)、......