- 无论如何都会走
finally
""" 无论如何都会走 finally """
def func():
try:
print(a) # 未定义
return 'try'
except:
print(b) # 未定义
return 'except'
else:
print('else')
return 'else'
finally:
print('finally')
return 'finally'
#
print(func())
# finally
# finally
# print(a) -> print(b) -> print('finally) -> return 'finally'
- 当
try
或 except
或 else
带 return
时,在 return
前执行 finally
然后再执行 return
""" 当 try 或 except 或 else 带 return 时,在 return 前执行 finally 然后再执行 return """
def func():
try:
print('try')
return 'try'
except:
print('except')
return 'except'
else:
print('else')
return 'else'
finally:
print('finally')
return 'finally'
#
print(func())
# try
# finally
# finally
# print('try') -> before return 'try' -> print('finally) -> return 'finally' # finally中执行return 'finally',不再返回到 return 'try'
- 当
try
正常执行且没有 return
时 才会执行 else
""" 当 try 或 except 或 else 带 return 时,在 return 前执行 finally 然后再执行 return """
""" 当try 正常执行且没有return 时 才会执行 else """
def func():
try:
print('try')
except:
print('except')
else:
print('else')
return 'else'
finally:
print('finally')
# return 'finally'
#
print(func())
# try
# else
# finally
# else
# print('try') -> print('else') -> before return 'else' -> print('finally') -> return 'else'
-
finaly
没有 ruturn
,且 try...except...
均出错
""" finaly 没有 ruturn,且 try...except... 均出错 """
def func():
try:
print(a) # 未定义
return 'try'
except:
print(b) # 未定义
# return 'except'
else:
print('else')
return 'else'
finally:
print('finaly')
# return 'finaly'
print(func())
# finaly
# NameError: name 'a' is not defined
# NameError: name 'b' is not defined
# print(a) -> print(b) -> print('finaly') -> except 打印错误信息
-
except
后可以跟多个异常类型,except
可以有多个
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。