异常
基本格式:
try: ... ... ... except 异常类型1[as reason]: ... print(str(reason)) #打印具体的异常类型,reason只是一个储存的变量 except (异常类型2,异常类型3): ... except: ... #最优先异常处理,无视前面except的处理 finally: ... #最终都会被执行的部分,用于例如用户打开文件后未保存抛出异常,无论如何我们都要去保存文件
例:
try: a=f,open('路径','w') #raise KeyboardInterrupt #使用raise主动触发异常 a.write('我是一个测试例') i=1+'1' #在这里抛出异常,写入的文件为关闭,可能造成丢失 a.close() except OSError as error: print('文件不存在') except TypeError: print('类型错了哟') finally: f.close()
总结:
1. except作为异常处理部分,可以将异常类型保存在变量值,也可以有多个except来比对 2. except优先级最高,但是无法得到具体的异常类型,即不知道怎么出错了,一般不推荐 3. finally是一个非常棒的杀手锏 4. raise OSError:主动触发OSError异常