2012-04-23 15 views
4

私はTwistedSNMP図書館で次のコードが見つかりました:Pythonでレイズ後にステートメントを実行することは可能ですか?

try: 
    raise ImportError 
    import psyco 
except ImportError, err: 
    pass 
else: 
    from pysnmp.asn1 import base 
    psyco.bind(base.SimpleAsn1Object) psyco.bind(base.Asn1Object) 

ソース・ファイル名を:pysnmpproto.py, Line 42

は、いずれの場合は、どちらかimport psycoまたはelseブロックがこれまでに実行されることがありますか?

+4

これは何もツイストされていません。 –

+1

このレイズは、以下のすべてのコードを「コメントアウト」する役割を果たすだけです。 – ch3ka

+0

@ ch3ka:おそらく。しかし、それはコードをコメントアウトするかなり奇妙な方法としてあなたを打つことはありませんか? – NPE

答えて

2

import psycoは、前の行で例外が発生したために決して届きません。例外はexcept節で検出されますが、この場合は何も実行されません。 句が例外なく実行された場合にのみアクセスするため、else句には到達しません。

要するに、このコードは常に例外を発生させてキャッチし、何もしません。削除する必要があります。

+0

同じと思ったが、確認したかった。説明ありがとう。 – Vikas

関連する問題