Exception/Error auf JDialog umleiten

LEjava

Mitglied
Hallo!

Gibt es eine Möglichkeit alle Errors die in der Konsole angezeigt werden auf ein JDialog anzuzeigen? Also ohne try-catch...

Mein bisheriger Versuch sah so aus. Leider kommt kein Zeichen welches das Ende der Meldung anzeigt, und so habe ich 10 oder 20 Meldungen für einen Fehler:

Java:
System.setErr(new PrintStream(new Error()));

Java:
public class Error extends OutputStream {
    static String errorMsg = "";
    
    public static void msg(String errorString){
        JOptionPane.showMessageDialog(null, errorString,"Fehler",  JOptionPane.OK_CANCEL_OPTION);
        
        java.util.Date now = new java.util.Date();
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy HH.mm.ss");

        System.out.println(now + " - " + errorString);
    }
    
    @Override
    public void write(int b) throws IOException {
        errorMsg += String.valueOf((char)b);
        System.out.println(b + " -");
        if(b == 13 || b == 10){
            msg(errorMsg);
            errorMsg = "";
        }        
    }
}

Viele Grüße Martin
 
Hallo Martin,
du solltest auf jeden fall mit try..catch.. arbeiten, du benutzt es ja nicht dafür die Fehler auszugeben, sondern um diese Fehler zu behandeln!

Du kannst die ja evtl. eine Methode machen mit dem namen showError(Exception e).
Ich kenne sonst keine Möglichkeit es direkt in einer MessageBox auszugeben, solltest du eig. auch nicht, da dies Lücken zeigen kann und der User sowieso nichts mit der Fehlermeldung anfangen kann.

Gruß,
AntiMuffin
 
Danke für die Antwort. Da habe ich mich zu knapp ausgedrückt. Ich arbeite überall mit try-catch, nur stell ich fest das es hier und da Fehlerquellen gibt, die ich nicht bedacht habe.
Wie es jetzt ist, bekommt der User aber keine Meldung, maximal benimmt sich das Programm komisch. In solchem Fall würde ich gerne zumindest die Meldung "Fehler, bitte kontaktieren Sie den Administrator" o.ä. ausgeben. Dann kann ich kommen und mir die Logfile anguggen.
 

Zurück
Oben