一、断言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的异常')
可以在括号中加入一些解释