十一、异常操作

一、断言assert

示例代码:

#断言语句失败,断言之后的语句错误就抛出异常
my_list=[1,2]
assert len(my_list)<0

列表长度大于0,所以抛出异常AssertionError

二、检测异常try,except

示例代码:

try:#一个try可以与多个except搭配使用,前面的代码出错之后,后续的不再进行检测
    num=1+1
    f=open('tes.txt')
    print(f.read())
    f.close()
except OSError as reason:
    print('文件出现错误!,错误在于:'+str(reason))
except TypeError as reason:
    print('类型出现错误!,错误在于:'+str(reason))

这里可以对2种不同类型的错误进行检测,并对原因转化字符串进行显示

三、在异常检测后使用finally进行一些必须的操作

try:#一个try可以与多个except搭配使用,前面的代码出错之后,后续的不再进行检测
    f=open('test2.txt','w')
    print(f.write('你好'))
    num=1+'1'#文件未关闭出错,数据还没被写入,则在finally中继续执行 
except OSError as reason:
    print('文件出现错误!,错误在于:'+str(reason))
except TypeError as reason:
    print('文件出现错误!,错误在于:'+str(reason))
finally:
    f.close()

最后执行文件关闭

四、try与else搭配

#else也可以与try搭配使用
try:
    f=open('test2.txt')
    print(f.read())
    f.close()
except OSError as reason:
    print('文件出现错误!,错误在于:'+str(reason))
else:
    print('无异常!')

五、引出异常raise

#可以用raise直接引出异常,eg:
raise ZeroDivisionError('除数为0的异常')

可以在括号中加入一些解释

发布了53 篇原创文章 · 获赞 9 · 访问量 3250

猜你喜欢

转载自blog.csdn.net/weixin_41039168/article/details/102454520