码迷,mamicode.com
首页 > 编程语言 > 详细

什么时候Python中try异常捕获finally一定要用到

时间:2020-07-28 22:27:28      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:否则   port   ==   --   open   关闭   地方   choice   ror   

import random


def raise_valueError(fw):
    print(fw)
    raise_e = random.choice((True, False))
    if raise_e:  # 假设这个异常不一定触发
        raise ValueError


def try_finally():
    file = ‘abc.txt‘
    fw = open(file, ‘r‘)  # 文件等资源,有打开的话,必须关闭
    try:
        print(‘try runs -------------‘)
        raise_valueError(fw)
        # fw.close()  # 这里fw.close()可能是执行不到的,这里打开文件可以有with open单不是每种资源打开都有with这种写法
        return ‘try‘
    except ValueError:
        # fw.close()  # 这里fw.close()也可能是执行不到的
        print(‘except valueError runs -------------‘)
        return ‘except valueError‘
    finally:
        fw.close()   # 这里fw.close()是一定执行得到的
        print(‘finally runs -------------‘)
        return ‘finally‘

    # fw.close# 这里fw.close()一定执行不到的


if __name__ == ‘__main__‘:
    ret = try_finally()
    print(‘ret‘, ret)  # 如有finally有return, ret一定是finally的返回值,否则是地方的返回值

  

什么时候Python中try异常捕获finally一定要用到

标签:否则   port   ==   --   open   关闭   地方   choice   ror   

原文地址:https://www.cnblogs.com/ALXPS/p/13393317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!