异常

基本格式:

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异常

posted @ 2020-01-21 10:35  盐亭的森林  阅读(119)  评论(0编辑  收藏  举报