0
我的代碼是:什麼意思pylint的時候才說的「而只有類或實例被允許提高異常(養壞型)」
except Exception as exception:
raise exception
(我爲了實現用這個代碼在測試執行其他測試而不失敗的finally子句)。
但pylint的說,「提高異常而僅有類或實例被允許(養壞型)」
是什麼意思?該怎麼辦?
我從Pylint源代碼中得知:「當一個既不是類,實例,也不是字符串的東西被引發時(即將會引發TypeError
)」時使用。但這對我來說並不意味着什麼。
EDITED:
的代碼片段引發此pylint的錯誤是:
# pylint: disable=invalid-name
"""A test."""
spam = True
try:
pass
except Exception as exception:
raise exception
finally:
spam = False
我使用的是一個Python 3.6.0,1.7.0 pylint的和星形線1.5.0 MacOs 10.12.3。
安東尼Sottile指出,使用:
except Exception as exception: # sic
raise
不提這個pytlint警告。
所有在我的代碼飼養壞類型的錯誤是這樣的,所以我已經到了這樣的結論
except Exception:
raise
是根據pylint的提高此異常的正確方法。
但是,我必須說,這個錯誤的pylint消息是相當神祕的。
感謝您的幫助。
你有很短的可重複片段嗎?僅僅在這個問題上的那個人並不會爲我觸發這種皮棉。順便說一句:重新渲染一個異常通常會用空白的'raise'來完成,因爲這會保留堆棧跟蹤 –
您不需要except子句;試試......終於沒事了(實際上除非最後還是不允許使用)。 –
我發現一個有趣的微型竊聽器這個皮棉但是:d https://i.fluffy.cc/KR3G8V9qqzTJrrMhZwDlMzGMwGDGxqCB.html#L13 –