2017-06-14 76 views

回答

0

嘗試周圍的調用方法在try-catch塊,像這樣:

private int numOfTries = 0; 
public void doStuff() { 
    try { 
     connectAndCall(); 
    } catch(SMTPSendFailedException e) { 
     System.err.println("Something went wrong, try again. The error was: " + e.getMessage()); 
     numOfTries ++; 
     if(numOfTries <= 5) { 
      doStuff(); 
     } 
    } 
} 

我用numOfTries變量以確保它不會永遠保持呼叫並鎖定您的應用程序,但可以增加或減少允許的嘗試次數。

+0

我想在發生此類異常時重新建立連接。我想知道屬於這個異常的不同類型的返回代碼是什麼 –

+0

@SurenthiranT爲了得到錯誤代碼,可以在'catch'塊中使用'e.getReturnCode()'來獲得一個'Integer'那是返回碼。 –

+0

當應用程序執行該行 transport.sendMessage(message,message.getAllRecipients()); 而且我們的SMTP連接24/7保持活動狀態,並且由於某些時候發送電子郵件失敗,出現錯誤代碼:421(會話中的消息太多)。 當發生異常時,我們想修復類似於「重置SMTP連接」的錯誤信息「SMTPSendFailedException:421錯誤:一次會話中消息太多」 您有任何想法如何實現此目的。請幫我解決這個 –

相關問題