如果except
子句中有return
指令,那麼使用else
子句有什麼意義?try-except-else語句的用例
我問這個問題,因爲Django文檔做它在some point,在vote()
功能。考慮到except
子句中的return
指令無論如何都會停止函數的執行,爲什麼他們使用else
子句隔離只在沒有引發異常時才執行的代碼?他們本可以完全省略else
條款。
如果except
子句中有return
指令,那麼使用else
子句有什麼意義?try-except-else語句的用例
我問這個問題,因爲Django文檔做它在some point,在vote()
功能。考慮到except
子句中的return
指令無論如何都會停止函數的執行,爲什麼他們使用else
子句隔離只在沒有引發異常時才執行的代碼?他們本可以完全省略else
條款。
如果在try:
套件中存在否異常,則會執行else:
套件。換句話說,只有在出現實際例外的情況下,纔會使用except:
套件並使用return
語句。
在我看來,return
聲明是什麼在這裏是多餘的;一個pass
就足夠了。如果還有其他代碼,應使用else:
套件作爲try
,如果沒有引發異常,則應執行只有,但可能引發本應不被捕獲的異常。
你是正確的except
子句中使用return
的爲else:
代碼有些多餘的那款讓。整個套件可以去凹陷和else:
線刪除:
def foo():
try:
# Some code
except:
# Some code
return
# Some code
從文檔: The use of the else clause is better than adding additional code to the try clause because it avoids accidentally catching an exception that wasn’t raised by the code being protected by the try ... except statement.
http://docs.python.org/2/tutorial/errors.html#handling-exceptions
我認爲這一點是,他們可能只是省略'else'完全。它的風格。 – katrielalex
@katrielalex:只有當「傳遞」不僅僅是說明性的。否則,無論上下文如何,'else:pass'都是**總是**冗餘的。 –
當然'通過'是多餘的。我的意思是刪除'else'和縮進'pass'在語義上也是相同的。 – katrielalex