2016-11-24 1 views
-1

Also habe ich ein Programm erstellt, das die Verwendung von Ausnahmen beinhaltet. Dies scheint gut zu funktionieren, abgesehen davon, dass ich unerwünschte Fehlerzeiger innerhalb der Ausgabe meines Codes bekomme. Hier ist die Ausgabe von meinem Code:Ist es möglich, Fehlerzeiger zu entfernen, ohne beabsichtigte Ausnahmen zu entfernen?

************Herbivore caught Exception example************ 
java.lang.Exception: Herbivores only eat plants! 
Exception caught 
************Herbivore non-caught Exception example************ 
Herbivores eat Vegetables 
    at QuestionEditor.Rabbit.eat(Rabbit.java:38) 
    at QuestionEditor.Main.main(Main.java:25) 

Ich will nicht die letzten beiden Zeilen der Ausgabe in meinem Code, weil das nur sagt mir, warum ich eine Ausnahme bin immer aber ich will nur aus dem drucken Exception-Nachricht ohne diese zusätzlichen Fehlermeldung Zeiger, wenn das möglich ist? Ich benutze NetBeans, also bin ich mir nicht sicher, ob dies mit jedem Ausnahmeprogramm geschieht, o wenn ich etwas falsch gemacht habe? Ich dachte nicht, dass es notwendig ist, den Code meines Programms zu zeigen, weil es tatsächlich keine Fehler gibt und es ausgibt, was ich will, dass es auseinander diese zusätzlichen Nachrichten ausgibt, wenn Sie denken, dass es wichtig ist, dass ich den Code bitte hinterlassen Sie einen Kommentar, der so sagt, und ich werde es in meiner Frage bearbeiten. Die bevorzugte Ausgabe wäre:

Wenn jemand helfen könnte, wäre dankbar, danke.

+0

Bitte fügen Sie den kleinsten Beispielcode, der dieses Problem veranschaulicht. – Jason

+0

Dies wird durch 'e.printStackTrace()' verursacht. Sie könnten diese Zeile in 'System.err.println (e);' ändern, aber der Stacktrace ist eine wertvolle Information zum Finden von Fehlern, Sie sollten sie nicht unterdrücken. Wenn Sie das tun, sollten Sie ein Logging-Framework verwenden, um den StackTrace in eine (Log-) Datei zu schreiben. –

+0

Ah vielen Dank, es war wegen dem, was Sie beschrieben haben. – James

Antwort

0

Sie können dies mit Thread.UncaughtExceptionHandler erreichen. Dadurch können Sie Code hinzufügen, der ausgeführt wird, wenn eine Ausnahme für einen bestimmten Thread nicht abgefangen wird. Innerhalb des Ausnahmebehandlers können Sie die Fehlermeldung einfach ausdrucken. Der Code dafür:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { 

    @Override 
    public void uncaughtException(Thread t, Throwable e) { 
     System.out.println(e.getMessage()); 
    } 
}); 
Verwandte Themen