2017-06-14 4 views

Antwort

0

Versuchen Sie, den Aufruf der Methode in einem Try-Catch-Block, wie diese Umgebung:

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(); 
     } 
    } 
} 

I verwendet die numOfTries Variable, um sicherzustellen, dass es nicht für immer aufrufen und sperren Sie Ihre Anwendung, aber Sie können erhöhen oder verringern die Anzahl der Versuche erlaubt.

+0

Ich möchte die Verbindung wiederherstellen, wenn eine solche Ausnahme auftritt. Ich würde gerne wissen, was sind die verschiedenen Arten von Return-Code gehört zu dieser Ausnahme –

+0

@SurenthiranT Um den Fehlercode, innerhalb der 'catch'-Block, können Sie' e.getReturnCode() ', um eine" Integer "zu bekommen das ist der Rückkehrcode. –

+0

, wenn die Anwendung die Zeile ausführt transport.sendMessage (message, message.getAllRecipients()); Und unsere SMTP-Verbindung bleiben 24/7 aktiv, und deshalb ist das Versenden der E-Mail mit dem Fehlercode: 421 (zu viele Nachrichten in einer Sitzung) fehlgeschlagen. wir möchten eine Reparatur so etwas wie "RESET die SMTP-Verbindung", wenn die Ausnahme passiert "SMTPSendFailedException: 421 Fehler: zu viele Nachrichten in einer Sitzung" Haben Sie eine Idee, wie dies zu erreichen. Bitte helfen Sie mir zu diesem –

Verwandte Themen