美文网首页
Python异常处理:单独一个raise

Python异常处理:单独一个raise

作者: 知识分子中的文盲 | 来源:发表于2016-03-06 12:14 被阅读8187次

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

    try:
      do something
    except IOError:  
      raise
    

    这个是把最近一次产生的异常重新抛出来,交给上层处理。(我已经知道这个异常发生并且捕获到了,但是我不做处理,而由我的上层调用处理。)
    https://docs.python.org/2/library/sys.html?highlight=sys#module-sys
    If the current stack frame is not handling an exception, the information is taken from the calling stack frame, or its caller, and so on until a stack frame is found that is handling an exception.
    举例:

    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"

    相关文章

      网友评论

          本文标题:Python异常处理:单独一个raise

          本文链接:https://www.haomeiwen.com/subject/lldakttx.html