我有一些Python代碼,它會在數據庫爲空並放棄之前嘗試一堆不同的數據庫查詢。這裏是一個簡化的例子:什麼是一個優雅的方式來多次捕獲相同的異常?
try:
result = Object.get(name="requested_object")
except Object.DoesNotExist:
try:
result = Object.get(name="default_object")
except Object.DoesNotExist:
try:
result = Object.get(pk=1)
except Object.DoesNotExist:
print "The database is empty!"
raise
請注意,我試圖捕捉的異常是每次都是相同的。當然,必須有一種方法來做到這一點,而不必不必要的重複和嵌套。如何在沒有嵌套try ... except語句的情況下實現相同的行爲?
我會看看[在這裏](http://programmers.stackexchange.com/questions/118788/is-using-nested-try-catch-blocks-an-anti-pattern)。總之,這有時是不可避免的。 – Buggabill 2014-10-09 11:44:59