try except 简单使用
异常:程序运行过程中出现的错误,都可以称为异常
#异常的信息包含:出错的文件、行数、具体的代码、错误类型、错误信息
异常处理:当程序运行,出现 异常的时候,对异常进行处理
try ....except....
语法:
try:
监控的代码块
except:
如果监控的代码出现问题,该怎么处理
例子1:
try:
file = open("test.txt","w",encoding = "utf-8")
print("读操作之前")
res= file.read() #读操作-----异常出现这里。因为w为只写 程序中断
print("读操作之后")
print('读操作获取的结果:{0}'.format(res))
except:
file.write("读操作报错啦 ")
print('读操作报错啦')
print("大家好")
try ....except....错误类型 as e ...
#错误类型:BaseExceptin Exception
#定位你的异常:明确你的错误类型 方便定位问题
try:
file = open("test.txt","w",encoding = "utf-8")
print("读操作之前")
res= file.read() #读操作-----异常出现这里。因为w为只写 程序中断
print("读操作之后")
print('读操作获取的结果:{0}'.format(res))
except BaseException as e:
file.write("读操作报错啦:{0} ".format(e))#把错误信息写进file里面去
print('读操作报错啦')
print("大家好")
try +同时多个except:
L=[1,2,3]
try:
print("获取列表数据",L[4])
file = open("test.txt","w",encoding = "utf-8")
print("读操作之前")
res= file.read() #读操作-----异常出现这里。因为w为只写 程序中断
print("读操作之后")
print('读操作获取的结果:{0}'.format(res))
except IOError as e:
file.write("读操作报错啦:{0} ".format(e))#把错误信息写进file里面去
print('读操作报错啦')
except IndexError as e:
print('列表数据读取报错啦')
file.write("列表数据读取报错啦:{0} ".format(e))#把错误信息写进file里面去
##代码的执行顺序是从上到下,什么地方会中断,就会跑到except里面去
##一个异常可以包含多个except,但是一个异常不能包含多个try
##try里面可以嵌套try ...except....
例子:
L=[1,2,3]
try:
file = open("test.txt","w",encoding = "utf-8")
try:
print("获取列表数据",L[4])
except IndexError as e:
print('获取列表错误:{0}'.format(e))
file.write("获取列表操作报错了:{0}".format(e)) ##处理完错误信息,不会中断,继续往下执行
print("读操作之前")
res= file.read() #读操作-----异常出现这里。因为w为只写 程序中断
print("读操作之后")
print('读操作获取的结果:{0}'.format(res))
except IOError as e:
file.write("读操作报错啦:{0} ".format(e))#把错误信息写进file里面去
print('读操作报错啦') ###最后的结果:会抓到两个异常信息
try...except....finally
try:
file = open("test.txt","w",encoding = "utf-8")
print("读操作之前")
res= file.read() #读操作-----异常出现这里。因为w为只写 程序中断
print("读操作之后")
print('读操作获取的结果:{0}'.format(res))
except:
file.write("读操作报错啦 ")
print('读操作报错啦')
finally:
print("我执行的是finally语句!!!")
try...except....else
try:
file = open("test.txt","w+",encoding = "utf-8")
res= file.read() #读操作
print('读操作获取的结果:{0}'.format(res)) ##执行通过,无异常
except:
file.write("读操作报错啦 ")
print('读操作报错啦')
else:
print("大家好呀")
try...except....else和try...except....finally 的区别
try...except....else:只有在try里面通过了才会执行else的语句
try...except....finally :finally的语句一定会执行
上下管理器
with open('test.txt','w')as file:
result = file.read()
print(result)
###作用是打开了文件后,之后会自动关闭