Python异常处理:单独一个raise

By 水木神風 at 2017-08-10 • 0人收藏 • 1890人看过

阅读开源代码时,经常能看到,单独一个raise的使用,比如

try:
  do something
except IOError:
  raise

这个是将拦截到的异常错误原样抛出扔给上层处理。(我已经知道这个异常发生并且捕获到了,但是我不做处理,而由我的上层调用处理。)
举例:

try:
    try:
        raise IOError
    except IOError:
        print "inner exception"
        raise # <same as raise IOError>
except IOError:
    print "outter exception"

结果:

inner exception
outter exception

首先被内层IOError异常捕获,打印“inner exception”, 然后把相同的异常再抛出,被外层的except捕获,打印"outter exception"




登录后方可回帖