2016-03-31 9 views
2

Ist es sinnvoll, eine Ausnahme zu werfen und direkt zu fangen, nur um Fehler zu drucken?Ausnahmen - Werfen und fangen Sie sofort

if(...){ 

} else { 
    try{ 
     throw new Exception(); 
    } catch (Exception e){ 
     e.printStackTrace(); 
    } 
} 
+1

Ich nehme an, es hängt von den Umständen ab. Beachten Sie, dass das Auslösen von Ausnahmen teuer ist. Wenn Sie nur eine Fehlermeldung an einen Benutzer ausgeben, reicht möglicherweise ein einfaches 'System.err.println (...)' aus. –

Antwort

3

Es gibt keine Notwendigkeit zu-und-Fang zu werfen, können Sie einfach anrufen:

new Exception().printStackTrace(); 

oder noch einfacher:

Thread.dumpStack(); 

Sie können auch den Stack-Trace aus dem aktuellen Thread als eine bekommen array:

Wenn Sie etwas detailliertere wie den Stapel zur Laufzeit überprüfen möchten (z. B. um th Name der aufrufenden Methode).

0

Ich denke, es ist nur dann sinnvoll sein könnte, wenn Sie explizit die Ausnahme in eine Protokolldatei mit einem LOGGER (in den catch-Block) senden wollen, oder es in einer especific Weise registrieren.

+0

Also macht e.printStackTrace() Sinn, da dies die Trace in das Protokoll einfügt? –

+0

Nein, dies wird keine Spuren im Protokoll hinterlassen, aber Sie könnten Ihren catch-Block mit etwas wie Logger.error ("Error:", e) modifizieren, um diese Ausnahme in Ihrer Logger-Datei zu registrieren – Wakachopo

Verwandte Themen