2017-01-02 43 views
1

我打算使用send_mail函數發送電子郵件,並且我希望使用fail_silently=True可以防止此函數引發異常。當fail_silently = True時send_mail中的異常

事實證明,如果SMTPException被提出,它確實工作;但我注意到它沒有攔截socket.error exception - 所以,如果STMP服務器關閉,異常會甚至fail_silently=True

現在我想知道如何獲得通過send_mail引發的異常的完整列表,這樣我就可以追上他們提出在嘗試/除了循環。有什麼建議麼?

+1

如果您不確定要捕捉哪些異常,那麼只需抓住'Exception' – ruddra

+0

@ruddra我最初不想這樣做,因爲我認爲如果我這樣做,PyCharm會給出「太大的異常原因」警告。但是,如果我做'除了例外作爲e:'它似乎是完全有效的。謝謝! –

回答

1

我想說,趕上Exception是一個非常最後的辦法。由於SMTPExceptionsocket.error都是IOError的子項,您可以改爲撥打IOError。如果你能找到其他的東西 - 你可以稍後將它添加到你的清單中。

相關問題