python异常捕捉处理

什么是异常:

程序遇到错误后,会引发异常,如果异常对象未被处理或捕捉,程序会回溯Traceback终止执行;

异常捕捉和处理方式

⑴try:
   print(10/0)
except Exception as e:    #Exception是所有异常的基类
   print("Invalid input",e)

#当我们知道可能出现的异常类型时,可以指定处理的异常类型,除指定的异常类型外 ,其它异常将依然会导致程序崩溃

⑵try:
   y=input('Enter the number')
   print(10/y)
except (ZeroDivisionError,TypeError) as e:   
   print(e)
⑶nuffled=False #通过本变量可进行异常的屏蔽和开启
try:
   y=input('Enter the number')
   print(10/y)
except ZeroDivisionError:
   if nuffled: #当开关打开时,except捕捉到异常后,会打印异常信息,不影响用户使用
      print('Division by zero is illegal')
   else:
      raise #当开头未打开时,except捕捉到异常后,会引发异常,方便内部使用时准确定位问题
⑷try:
   print(x/y)
except : #捕捉所有异常,隐藏所有未处理的错误,比较危险的一种方式
   print("something wrong happened")
⑸try:
   print(x/y)
except Exception as e :
   print(e)
   print("please try again")
else:
   print("over") #只有在未出现异常时,else后的语句才会被执行
finally:
   print("cleaning up")#不管是否出现异常,finally后的语句都会被执行

 raise语句

 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

try:
   if i in range(5):
      print (10/i)
      raise ZeroDivisionError     #如果引发ZeroDivisionError异常,后面的代码将不能执行
   print len(s)  #这句不会执行,但是后面的except还是会走到
except TypeError:
   print "空对象没有长度"

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值