在Python中,如何在try/except
語句中兩次使用except
具有相同異常名稱的塊兩次,而無需將代碼包成多個try/except
塊?「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]
任何處理代碼優於上述表示讚賞! :)
謝謝。
爲什麼要這麼做? – spinlok
你不能。也許你可以告訴我們爲什麼你認爲你需要這樣做,所以我們可以告訴你爲什麼你不需要這樣做 –
我同意,我不認爲這是一個好主意。這意味着你有兩個由同一個事物觸發的代碼路徑,做不同的事情。將try/catch看作if/else語句。 –