Quelle est la différence entre System.out.println()
et System.err.println()
en Java?
Dans Java System.out.println()
imprimera sur la norme hors du système que vous utilisez. D'autre part, System.err.println()
imprimera sur l'erreur standard.
Si vous utilisez une simple application de console Java console, les deux sorties seront les mêmes (la ligne de commande ou la console) mais vous pouvez reconfigurer les flux de sorte que par exemple, System.out
continue d'imprimer sur la console mais System.err
écrit dans un fichier.
De plus, les IDE comme Eclipse montrent System.err
en texte rouge et System.out
en texte noir par défaut.
System.out est "sortie standard" (stdout) et System.err est "sortie d'erreur" (stderr). Avec System.in (stdin), ce sont les trois flux d'E/S standard dans le modèle Unix. La plupart des environnements de programmation modernes (C, Perl, etc.) prennent en charge ce modèle.
Le flux de sortie standard est utilisé pour imprimer la sortie des "opérations normales" du programme, tandis que le flux d'erreur est destiné aux "messages d'erreur". Ceux-ci doivent être séparés - bien que dans la plupart des cas, ils apparaissent sur la même console.
Supposons que vous ayez un programme simple où vous entrez un numéro de téléphone et il imprime la personne qui a ce numéro. Si vous entrez un numéro invalide, le programme devrait vous informer de cette erreur, mais il ne devrait pas le faire comme réponse: Si vous entrez "999-ABC-4567" et que le programme imprime une erreur message "Pas un numéro valide", cela ne signifie pas qu'il y a une personne nommée "Pas un numéro valide" dont le numéro est 999-ABC-4567. Il n'imprime donc rien sur la sortie standard et le message "Numéro non valide" est imprimé sur la sortie d'erreur.
Ces commandes utilisent différents flux de sortie. Par défaut, les deux messages seront imprimés sur la console mais il est possible par exemple de rediriger l'un ou les deux vers un fichier.
Java MyApp 2>errors.txt
Cela redirigera System.err
à errors.txt
fichier.
Le but principal de System.out
Est de fournir une sortie standard.
Le but principal de System.err
Est de donner une erreur standard.
Regarde-les
http://www.devx.com/tips/Tip/14698
http://wiki.Eclipse.org/FAQ_Where_does_System.out_and_System.err_output_go%3F
cette réponse vous aidera probablement, c'est tellement facile System.err
et System.out
les deux sont identiques les deux sont définis dans la classe System
comme variable de référence de la classe PrintStream
comme public final static PrintStream out = null;
et public final static PrintStream err = null;
signifie que les deux sont réf. variable de la classe PrintStream
. normalement System.err
est utilisé pour imprimer un message d'erreur, ce qui augmente la réductibilité pour le programmeur.
Une différence mineure survient dans les deux lorsque nous travaillons avec l'opérateur Redirection.
System.out.println("wassup");
se réfère à quand vous devez sortir un certain résultat se rapportant à l'entrée correcte donnée par l'utilisateur tandis que System.err.println("duh, that's wrong);
est une référence pour montrer que l'entrée fournie est incorrecte ou qu'il y en a une autre Erreur.
La plupart des IDE affichent cela en rouge (System.err.print
).