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


    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

     

  • 相关阅读:
    AtomicInteger
    Android利用ViewPager实现滑动广告板
    modelsim实用教程--前言
    信号的抽取和插值
    FPGA与simulink联合实时环路系列——实验三 按键key
    FPGA与simulink联合实时环路系列——实验二LED
    FPGA与simulink联合实时环路系列——实验一 测试
    FPGA与simulink联合实时环路系列—开篇
    格雷码原理与Verilog实现
    基于FPGA的飞机的小游戏
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/8760894.html
Copyright © 2020-2023  润新知