版权声明:风火编程, 欢迎指正. https://blog.csdn.net/weixin_42620314/article/details/82620349
try…except…else…finally用法及说明
1. 常规用法
异常捕捉, 明确逻辑顺序
try:
dangerous_call()
except Exception as e:
logging.error(str(e))
else:
after_call()
finally:
always_call()
2. 确定执行,处理重要事务
在continal, break, return, sys.exit(), 异常之后仍会执行的finally子句常用来释放重要资源
def function():
try:
main_call()
return result
finally:
always_call()
面试题练习
问
a = 1
def func():
global a
try:
print(a) #... (1)
a += 1 #... (2)
return a #... (3)
a += 1 #... (4)
print(a) #... (5)
finally:
a += 1 #... (6)
b = func() #... (7)
print(b) #... (8)
print(a) #... (9)
答
1
2
3
解
(1)输出a的初始值1
(2)返回此时a的值2
(3)返回此时a的值2
(4)不执行
(5)不执行
(6)此时a的值3
(7)func在(3)的返回值2
(8)输出func正在(3)的返回值2
(9)输出a的最终值3