次のコードがあるとします。
試す:
'foo'を出力します
#もっとたくさんのコード...
'バー'を印刷
それ外:
パス
テスト目的で、一時的なtry-statementを無効にするにはどうすればよいですか?
インデントがまだオフになっているため、コメントtryや行をコメントすることはできません。except
これより簡単な方法はありませんか?
#試す: 'foo'を出力します #もっとたくさんのコード... 'バー'を印刷 #それ外: # パス
次のコードがあるとします。
試す:
'foo'を出力します
#もっとたくさんのコード...
'バー'を印刷
それ外:
パス
テスト目的で、一時的なtry-statementを無効にするにはどうすればよいですか?
インデントがまだオフになっているため、コメントtryや行をコメントすることはできません。except
これより簡単な方法はありませんか?
#試す: 'foo'を出力します #もっとたくさんのコード... 'バー'を印刷 #それ外: # パス
例外をexceptブロックの最初の行として再発生させることができます。これは、try/exceptがない場合と同じように動作します。
try:
print 'foo'
# A lot more code...
print 'bar'
except:
raise # was: pass
ベロトロンの答えに便乗して、私はこのようなことをするというアイデアが好きです:
try:
print 'foo'
# A lot more code...
print 'bar'
except:
if settings.DEBUG: # Use some boolean to represent dev state, such as DEBUG in Django
raise # Raise the error
# Otherwise, handle and move on.
# Typically I want to log it rather than just pass.
logger.exception("Something went wrong")
ブロックがスローしないexceptものだけをキャッチします。try
class FakeError:
pass
try:
# code
except FakeError: # OldError:
# catch
これが良いアイデアかどうかは実際にはわかりませんが、機能します。
それをif Trueステートメントに変換し、ブランチexceptによって「コメントアウト」された句を使用します(これは決して実行されません)。else
if True: # try:
# try suite statements
else: # except:
# except suite statements
これelse:はオプションです。スイート全体をコメントアウトすることもできますexcept:が、を使用すると、スイート全体をインデントしてコメントをelse:外したままにすることができます。except:
それで:
try:
print 'foo'
# A lot more code...
print 'bar'
except SomeException as se:
print 'Uhoh, got SomeException:', se.args[0]
になります:
if True: # try:
print 'foo'
# A lot more code...
print 'bar'
else: # except SomeException as se:
print 'Uhoh, got SomeException:', se.args[0]