Pythonで、コードをもう1つのブロックにラップする必要なしexceptに、ステートメントで同じ例外名のブロックを2回使用するにはどうすればよいですか?try/excepttry/except
簡単な例(ここでは、の各呼び出しでpages.get例外が発生する可能性があります):
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:
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]
上記よりも優れた処理コードをいただければ幸いです。:)
ありがとう。