Erste Schritte System.err und System.out

Nookie

Mitglied
Hallo liebe Leute =)

Ich programmiere seid ca 3 Jahren PHP Hobbymässig und versuche mich nun an Java, da Java aber ziemlich OOP ist was in PHP eigentlich nicht der Fall ist (oder ich habe ganz selten OOP Anwendungen geschrieben) werde ich wohl am Anfang einige kleine fragen haben mit denen ich euch immer mal wider bombardieren werde 🙂

Ich habe mir das Buch Java ist auch eine Insel" von Christian Ullenboom in der neusten Fassung zugelegt.

Okay, ich habe folgenden codeschnipsel

Java:
		System.err.println("Schlimmer Fehler!");
		System.out.println("Alles ist gut!");

und die Ausgabe sieht so aus:

Alles ist gut!
Schlimmer Fehler!


Es ist also genau umgekehrt?
wieso das?
Hat System.err eine "niedrige"(?) Priorität?

Und, greife ich als Programmierer überhaupt auf das Objekt "err" oder überlasse ich das im normalfall dem Compiler für "richtige" Fehlermeldungen?

Eigentlich ist es eine nicht wirklich wichtige frage, ich versuche nur von Anfang an alles zu begreifen.
mfg
 
Diese Streams werden in Threads abgearbeitet. Die Reihenfolge ist deshalb nicht absehbar.

Also ich mach prinzipiell wenig mit System.err oder auch System.out. Dafür nimmt man in den meisten Fällen ein Logging (log4j).
 
oder überlasse ich das im normalfall dem Compiler für "richtige" Fehlermeldungen?
Dem Compiler überlässt du gar nix, der erstellt dir nur den Bytecode aus dem Sourcecode. Zur Laufzeit deines Programms hat der nichts mehr zu tun. Was gemachet wird, ist eine Exception bis an die JVM "weiterzureichen", also diesen Fehler nicht selbst zu behandeln. Das führt dann zu den bekannten Fehlermeldungen in der Konsole.
 
Ausgaben über System.err werden ungepuffert ausgegeben, die über System.out gepuffert, also mit einem Zwischenspeicher. Daher können sich die Ausgaben auch durchaus gegenseitig zerschießen (du hast also Fehlerausgaben in normalen Ausgaben oder umgekehrt).

Nookie hat gesagt.:
Und, greife ich als Programmierer überhaupt auf das Objekt "err" oder überlasse ich das im normalfall dem Compiler für "richtige" Fehlermeldungen?
Bei Konsolenanwendungen - sicherlich, da wird der Entwickler das wohl machen. Bei größeren Anwendungen wird man Fehlermeldungen aber eher dem Benutzer anzeigen (wenn es eine GUI-Anwendung ist) oder die genaue Art der Ausgabe (Terminal, Datei) einem Logger überlassen.
 

Zurück
Oben