web-dev-qa-db-fra.com

différence entre System.out.println () et System.err.println ()

Quelle est la différence entre System.out.println() et System.err.println() en Java?

45
user354299

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.

62
Carlos G.

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.

27
Paul Richter

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.

4
Michał Piaskowski

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

2
onurbaysan

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.

1
ATIQ UR REHMAN

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).

0
Arth Tyagi