except
ブロックをtry/except
文で同じ例外名で2回使用するには、もう1つのコードにコードをラップする必要はありませんか?try/except
ブロック? (ここではpages.get
の各呼び出しが例外を発生させる場合があります)"except"と同じ例外クラスをパラメータとして2回使用
簡単な例:try
今の
try:
page = pages.get(lang=lang)
except Page.DoesNotExist:
if not lang == default_lang:
page = pages.get(lang=default_lang)
else:
raise Page.DoesNotExist
except Page.DoesNotExist:
page = pages[0]
、私のDjangoのアプリで、私は次のように取り扱うか(私はしたくない「余分な」ここにブロックする):
try:
try:
page = pages.get(lang=lang)
except Page.DoesNotExist:
if not lang == default_lang:
page = pages.get(lang=default_lang)
else:
raise Page.DoesNotExist
except Page.DoesNotExist:
page = pages[0]
上記よりも優れた処理コードがあります。 :)
ありがとうございました。
なぜこれをやりたいですか? – spinlok
できません。おそらく、なぜあなたはあなたがこれを行う必要があると思うのかを私たちに伝えることができます。なぜあなたはそれをする必要がないのかを教えてくれるでしょう。 –
私は同意します。つまり、同じことによってトリガされる2つのコードパスがあり、それぞれ異なることを意味します。 if/else文としてtry/catchを考えてみましょう。 –