2012-08-07 159 views
0

我打算使用javamail以循環類型的方式發送自動電子郵件。例如,我可能會收到300封電子郵件,我需要依次使用javamail構建和發送。我在java中使用定時器來在每天的特定時間自動執行該過程。捕捉Javamail異常

我應該嘗試捕獲哪些異常,以及如何在不中斷循環的情況下捕獲異常時處理錯誤?我應該期望遇到什麼異常?無法連接到SMTP服務器?無效的郵件地址?等等?

+0

你怎麼期待我們在不知道任何關於你的代碼的情況下對此發表評論? – Sujay 2012-08-07 02:30:08

+1

你總是可以抓到'例外'......雖然這是不好的做法。使用Javamail會出現什麼異常?請諮詢他們的API來仔細檢查,然後考慮使用適當的邏輯來處理這些情況。 – Makoto 2012-08-07 02:31:11

+0

它不是一個真正的代碼類型的問題。我會更新這個問題,以便更清楚一點。 – ryandlf 2012-08-07 02:46:22

回答

2

您必須將try/catch放入循環中。如果你想循環繼續,你應該只記錄異常並處理下一次嘗試。

至於哪些例外,你會被迫抓住所有的檢查。如果你不想要非檢查異常來中斷處理,你也必須去捕獲這些異常。我不會去追趕Throwable

+0

我想我應該在問題上更清楚一點。我希望能夠捕捉到什麼類型的異常?無法連接到SMTP服務器?不合規電郵?等等? – ryandlf 2012-08-07 02:45:52

+0

javadocs將顯示您需要捕獲MessagingException。 MessagingException有許多子類; javadocs應該告訴你哪些方法可能會被拋出。如果你想嘗試從異常中「恢復」,你需要處理許多子類。但是要回答你的問題,是的,許多事情都會出錯,包括未能連接到你的服務器,無效的電子郵件地址等等。 – 2012-08-07 06:22:03