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

您所在的位置:网站首页 python里的finally python中的 try...except...finally 的用法

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

#python中的 try...except...finally 的用法| 来源: 网络整理| 查看: 265

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()

------>

aaabbbb总结:当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 filebbbb

当然,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())

----->

2222222222bbbb5

 

例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())

----->

2222222222error occurs while reading filebbbb6

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3