4. try-finally语句
作用
- 通常用try-finally语句来做引发异常时必须要的处理的事情。
- 无论异常是否发生,finally子句都会被执行。
语法
try:
可能引发异常的语句
finally:
最终语句
说明
- finally子句不可以省略。
- 一定不存在except子句语法。
示例
# try-finally语句示例
def write_nx_to_files():
'''向文件写入n个x'''
file = open('test.txt', 'w')
try:
number = int(input('请输入写入x的个数:'))
file.write('x' * number)
finally:
file.close()
print('文件已经关闭')
write_nx_to_files()
上述程序中,当 try 语句内引发异常时,finally 子句能够保证一定能关闭文件。但异常状态没有改变。错误信息依旧会向上传递给上层的 try-except 语句。如果没有 try-except 出来,则程序异常终止。
finally子句的特殊情况
- 终止异常的情况
- 如果 finally 子句执行了 return、break 或 continue 语句,则被保存的异常会被丢弃,即转为正常状态