1.try
print(1)
try:
a=1/0
print("***********")
except:#拦截所有出现的异常错误,除了语法错误
#如果出现异常,则拦截后面语句,直接跳转执行except
print("some error occur!")
print(2)
print(1)
try:
a = 1
print("***********")
except:
# 如果try中没有异常错误发生,则不执行except
print("some error occur!")
print(2)
2.如果拦截到指定类型错误,则后面其他except被短路,不再执行。
print(1)
try:
a=1/0
print("***********")
except ZeroDivisionError:
print("除数是0的错误出现了,所以程序不计算了!")
except:#拦截所有出现的异常错误,除了语法错误
#如果出现异常,则拦截后面语句,直接跳转执行except
# 如果try中没有异常错误发生,则不执行except
print("some error occur!")
print(2)
"""执行结果:
1
除数是0的错误出现了,所以程序不计算了!
2
"""
3.打印错误信息e
print(1)
try:
a=1+"a"
print("***********")
except TypeError as e:
print("Type 类型错误")
print(e)
except:#拦截所有出现的异常错误,除了语法错误
#如果出现异常,则拦截后面语句,直接跳转执行except
# 如果try中没有异常错误发生,则不执行except
print("some error occur!")
print(2)
4.如果程序没有拦截到异常,则依旧会崩溃!
5.调用异常拦截:raise
print(1)
value=input("请输入一个值:")
try:#将可能出现错误的代码放到try中
if value=="type":
raise TypeError
if value=="zero":
raise ZeroDivisionError
if value=="all":
raise #此写法只会让except拦截
except ZeroDivisionError:
print("除数是0出现错误出现了")
except TypeError as e:
print("Type 类型错误")
print(e)
except:#拦截所有出现的异常错误,除了语法错误
#如果出现异常,则拦截后面语句,直接跳转执行except
# 如果try中没有异常错误发生,则不执行except
print("some error occur!")
print(2)
6.定制自己的异常信息
7.try不能单独存在,如果不写except,可以写finally。finally:不管异常有没有被拦截到,都会执行。
print(1)
try:
a=1/0
except ZeroDivisionError:
print("除数不能为0!")
finally:
print("done")
8.else:当没有异常出现时,执行。放在finally之前
print(1)
try:
a=1
except ZeroDivisionError:
print("除数不能为0!")
else:
print("没有异常")
finally:
print("done")
"""结果:
1
没有异常
done
"""
9.拦截错误并打印异常详细信息,引traceback包。
10.如果嵌套异常,被里面的try捕获,则最外面的else任然会执行