python之异常处理

普通异常的使用

names = ['wt','gxb']
data = {}
try:
    open('b.txt')
except IndexError as e:
    print('there is not exist this key',e)
except Exception as e:
    print('I can`t find this error!!!')
else:
    print('it`s ok!!')
finally:
    print('dajkdhkaj')

说明:在try-except-else-finally程序块中,只有可能产生异常的语句才会被放在try中,在try代码块成功执行时才需要运行的代码放在else代码块中,
如果try中没有异常,那么except部分将跳过,执行else中的语句。
如果try中发生异常,except代码块告诉Python,该怎么办。如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后再次被抛出。
finally是无论是否有异常,最后都要做的一些事情,对异常处理做最后的清理工作。

== 这里补充一句,在try代码块中含有return的情况下,并不会阻碍finally的执行,但是else部分不会被执行。==

def f():
    try:
        print 1
        return 1
    except:
        return 2
    else:
        print 3
        return 3
    finally:
        print 0
        #return 0

raise的异常

>>>raise NameError('HiThere')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: HiThere

raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。
如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。

https://www.cnblogs.com/cotton/p/3785999.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值