异常会中断程序进行,错误是不可预测的,但是异常可以处理。
发生异常
print("----tets1---")
f = open("1.txt", "r") # 用只读模式打开了一个不存在的文件
print("----tets2----") # 这句话不会被执行
捕获异常 (由try把可能出错的代码段包括,except 表示出现的错误是什么 ,pass什么也不做)
try:
print("----tets1---")
f = open("1.txt","r")
print("----tets2----")
except IOError: # 文件没找到属于 IOE 异常(输入输出异常)
pass #捕获异常后,执行的代码
异常类型类型想要被捕获,需要一致
try:
print(num)
#except IOError: # 异常类型类型想要被捕获,需要一致
except NameError:
print("产生错误了")
如何很多问题都能捕获
try:
print("----tets1---")
f = open("1.txt", "r")
print("----tets2----")
print(num)
except (IOError,NameError): # 将可能产生的所有异常类型,全部放到下面的小括号中
print("产生错误")
获取错误描述
try:
print("----tets1---")
f = open("1.txt", "r")
print("----tets2----")
print(num)
except (IOError,NameError) as ress:
print("产生错误")
print(ress)
捕获所有的错误异常都可以用一条来解决。
try:
print("----tets1---")
f = open("1.txt", "r")
print("----tets2----")
print(num)
except (Exception) as ress: # Exception 可以承担所有异常
print("产生错误")
print(ress)
try ,,finally 和嵌套
try:
f = open("练习文本.py","r")
try:
while True:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
finally: # 必执行
f.close()
print("文件关闭")
except Exception as ress:
print("发生异常。。。")
print(ress)
finally:
f.close()
print("文件关闭")