Python异常处理:单独一个raise

阅读开源代码时,经常能看到,单独一个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最强大的结构之一就是它的异常处理能力,所有的标准异常都使用类来实现,都是基类Exceptio...
    随风化作雨阅读 3,085评论 0 1
  • 异常 异常就是程序运行错误或者逻辑混乱。不能让用户看到直接代码的报错,需要给客户友好的提示。 异常一般是程序中无法...
    冰封心动阅读 305评论 0 0
  • 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法...
    云Shen不知处阅读 423评论 0 0
  • Python异常处理 异常概念: 异常:就是不正常的情况,程序开发过程中错误和BUG都是补充正常的情况 异常发生的...
    youngkun阅读 941评论 0 4
  • 我是江雄英,我坚持记录最真实的自己,这是我的原创日记第70天,show计划第27天,我的每天越来越丰富。 似火的艳...
    阿英说阅读 164评论 0 0