Python異常処理:個別raise

853 ワード

オープンソースコードを読むと、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 # 
except IOError:
    print "outter exception"

結果:
inner exception
outter exception

まず内層IOError異常に捕獲され、「inner exception」を印刷し、その後同じ異常を放出し、外層のexceptに捕獲され、「outter exception」を印刷する