#异常:是指在语法正确的前提下,程序运行时报错就是异常
try:
print(1/0) #0不能做除数,这里是错的
except ZeroDivisionError as e:#注意的是这里的错误类型要与出现的错误对应,如果不对应是不能捕捉到异常的,依旧会报错
print("出错",e)
#捕获多个异常
#1个try 多个except捕捉异常,只会执行捕捉到异常的语句,其他捕捉异常的语句不会执行
#注意的是若出现多个异常,只会执行第一个先出现的异常
try:
print(1/0)
b=[1,2]
print(b[2])
except IndexError as f:
print("出错2",f)
except ZeroDivisionError as e:
print("出错1",e)
#捕获所有异常:两种方式都是只能捕获所有异常,但不能知道就是是那种
#格式1
try:
print(3/0)
b=[1,2,3]
print(b[3])
except: #except 后面不写异常类型,表示可以捕获所有的异常
print("出错啦")
#格式2
try:
print(3/0)
b=[1,2,3]
print(b[3])
except Exception: #Exception 是所有异常的父异常 ,try中抛出的异常,Exception都能捕获
print("出错")
#else格式 如果try中没有抛出异常则执行else中的代码,如果try中抛出了异常则不会执行else中的代码
try:
print("hahha")
print(1/0)
except:
print("捕获到异常")
else:
print("没有发生异常")
#try…finally 格式:不管try中是否抛出异常最终都会执行finally中的代码
try:
print("aaa")
print(1/0)
lst=[]
print(lst[0])
except ZeroDivisionError as e:
print(e)
excep