try, except, finally

这个部分就是常见的内容,在 try 块里进行有可能 raise Exception 的代码,在 except 块里接住这些块抛出的异常,如果没有发生异常,那么就执行 else 块,无论执行哪个代码块,最后都要执行 finally 代码块。

示例如下:

file = open('./test.txt', 'w')
try:
    file.write('Hello world')
except OSError as e:
    print(f"An OS error occurred: {e}")
except ValueError as e:
    print(f"A value error occurred: {e}")
    raise e # 继续抛出异常
except:
    print("Other error")
else: # 在无异常的时候执行
    file.wite('Good bye')
finally: # 无论有无异常都执行
    file.close()

with

当然这样编写代码就非常麻烦,每打开一个文件,我们都要记挂着它是否 close 了,所以衍生出了 with 关键字,它相当于一个自动执行 finally 的语法糖,省掉了自己写声明,其形式如下:

with open('./test.txt', 'w') as file:
    file.write('Hello, world')

这样就不用担心 close 问题了,它自动就 close 了。