python学习之异常/day11上午
其他
2019-03-11 09:11:08
阅读次数: 0
错误和异常
语法正确的情况下报错叫异常
a=[1,2]
try: #执行try里的语句,直到出现错误以后才执行except里面的语句
#执行错误之前的语句也将执行,直到错误时才执行except里的语句
print(a[0])
print(a[3])
except IndexError as e: #IndexError是错误的类型,把IndexError赋给e
print("下标越界",e)
print("到这里了")
"""
1
下标越界 list index out of range
到这里了
"""
try...except...用法
class A():
pass
try:
print(A.x)
except AttributeError as e:
print("属性异常")
a={"name":"张三"}
try:
print(a["age"])
except KeyError as z:
print(z)
a=[1,2,3,4,5]
b=iter(a)
try:
while True:
print(next(b))
except StopIteration as e:
print(e)
while True:
try:
print(next(b))
except StopIteration as e:
print(e)
break
a=[2]
try:
print(a[2]) #第一次错误就被接收到,try中错误往下的代码不会再执行
print(a[1]/0)
except (ZeroDivisionError,IndexError) as e:
print(e) #list index out of range
a=[2]
try:
print(a[0]/0)
print(a[2])
except (ZeroDivisionError,IndexError) as e:
print(e) #division by zero
try...except...else...用法
如何判断,没有出现错误,如下
try:
print("11111111")
except (ZeroDivisionError,IndexError) as e:
print("2222222222222")
else:
print("我没错")
11111111
我没错
a=[1]
try:
print(a[2])
print("x")
print(a[0]/0)
print("y")
except: #能捕获所有类型错误,但是只捕捉一次
print("2")
else:
print("无错误")
结果为 2
try...finally...的用法
try:
print("9")
except:
print("6")
else:
print("没有错误")
finally:
print("无论程序正确还是错误,我都会执行,没毛病")
try:
f=open("a.txt","r+")
f.write()
except:
print("出事了")
finally:
f.close()
转载自blog.csdn.net/qq_39112101/article/details/88113277