如果我在寫某些代碼的時候不確定某事,我試着再次閱讀The Zen of Python
。這段時間,這些線條猶豫着我。處理異常的最佳方法是什麼?
Errors should never pass silently.
Unless explicitly silenced.
在當前代碼我有一些功能,這可能是這樣的:
def add_v_1(a, b):
return a + b
,併爲它們呼叫喜歡:
c = add_v_1(7, [])
異常這樣的代碼將泡漲,抓住在上層。
但是它應該是這樣嗎?
add_v_1
可以引發TypeError
異常,我想從中恢復。 所以,函數的調用可能會是:
try:
c = add_v_1(7, [])
except TypeError:
print "Incorrect types!"
但對於每一個電話,我應該做的異常處理。看起來很沉重。
所以,我可以這樣做:
def add_v_2(a, b):
try:
return a + b
except TypeError:
print "Incorrect types!"
和電話是:
c = add_v_2(7, [])
看起來更乾淨。
似乎所有這些方法都遵循The Zen of Python
,但哪一個更好?
我會說這取決於你的情況,如果你處理你仍然必須處理函數內部的異常它也在外面,因爲它會返回None。 – Hacketo
@Hacketo你會用當前的例子做什麼? –