python(day020——异常1)

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任然会执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值