296 votes

Différence dans le système. exit (0), System.exit (-1), System.exit (1) dans Java

Salut j'aime savoir la différence entre les suivants dans java

 System.exit(0);
System.exit(-1);
System.exit(1);
 

Quand dois-je utiliser le code ci-dessus de manière appropriée. Merci

261voto

Jack Points 61503

Le paramètre de sortie devrait se qualifier si l'exécution du programme est allé de bon ou de mauvais. C'est une sorte de eredity à partir des langages de programmation plus où il est utile de savoir si quelque chose va mal et ce qui s'est passé.

Code de sortie est

  • 0 lors de l'exécution s'est bien passé;
  • 1, -1, whatever != 0 lorsqu'une erreur s'est produite, vous pouvez utiliser des valeurs différentes pour les différents types d'erreurs.

Si je suis correct codes de sortie utilisé pour être juste des nombres positifs (je veux dire dans UNIX) et en fonction de la gamme:

  • 1-127 sont des codes définis par l'utilisateur (donc générée par l'appel de exit(n))
  • 128-255 sont des codes générés par la résiliation pour cause de différents signaux unix comme SIGSEGV ou SIGTERM

mais je ne pense pas que vous devez prendre soin lors de l'encodage sur Java, c'est juste un peu d'information.. c'est utile si vous prévoyez de prendre vos programmes interagir avec des outils standard..

137voto

robert Points 639

Zéro = tout va bien

Positive = Quelque chose que je m'attendais à mal tourner s'est mal passé (ligne de commande incorrecte, impossible de trouver le fichier, impossible de se connecter au serveur)

Négatif = Quelque chose à laquelle je ne m'attendais pas a mal tourné (erreur système - exception imprévue - résiliation forcée externe, par ex. kill -9 )

11voto

Un code de statut de sortie non nul indique généralement une terminaison anormale. si n! = 0, c'est au programmeur d'appliquer une signification aux différents n '.

De http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html

2voto

La valeur que vous transmettez est le code de sortie renvoyé par la machine virtuelle Java au système d'exploitation invoquant. Généralement, 0 signifie aucune erreur (sous Unix) et toute valeur non nulle signifie que quelque chose s'est produit (où "quelque chose" est spécifique à l'application).

Je crois que le concept Windows similaire est% ERRORLEVEL%.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X