Python 高级编程和异步IO并发编程 --04_11 Python中的上下文管理器with语句
# try_except_finally try: f_read = open("Tom.txt") print("code started") raise KeyError f_read.close() #raise IndexError # 此时就没有捕获到异常,代码出错 f_read.close() # 打开正常时,才会执行该语句,如果有抛出异常,则不会执行该语句, # 此时应该在每次抛出error时,都执行f_read.close(),这样才可以释放该文件 except KeyError as e: print("key error") f_read.close() else: print("other error") # 在没有抛异常时,捕捉其它异常。 finally: # 无论前面的代码是否允许,都会执行finally后面的语句 print("finally") f_read.close() # finally语句一般用于资源释放 # try_except_finally def exe_try(): try: print("code started") raise KeyError return 1 # 前一句,raise了一个KeyError,导致该语句没被执行 except KeyError as e: print("key error") return 2 #