2013-10-13 49 views
6

Ho visto una grande quantità di domande su System.exit(int status) su stackoverflow.Java. System.exit (stato int). Valore per lo stato di uscita

Ad esempio:

Difference in System. exit(0) , System.exit(-1), System.exit(1) in Java

difference between System.exit(0) and System.exit(-1)

Ma non vedo risposta su mia domanda parziale:

Abbiamo qualche connessione diretta tra exit status e System Error Codes per i prodotti Microsoft (Microsoft site)?

Certo, non abbiamo connessioni dirette, ma: possiamo fare questa connessione?

Se eseguiamo il nostro programma java su sistema operativo Windows e il nostro programma java ha l'istruzione System.exit(int status), possiamo usare System Error Codes list o no?

È una buona idea o no?

Cosa ne pensi? Altre idee?

Esempio:

  • programma Java è stato eseguito tramite riga di comando su Wisdows OS;
  • Il nostro programma java ha rilevato un'eccezione come FileNotFoundException;
  • Dopo questo abbiamo preso la decisione di chiudere il nostro programma tramite System.exit(int state);
  • In questo caso exit status è uguale a ?

perché (Microsoft site):

ERROR_FILE_NOT_FOUND 
2 (0x2) 
The system cannot find the file specified. 

risposta

7

Lo stato di uscita è un valore a scelta. Se chiami il tuo programma e poi reagisci in base al valore di uscita restituito dopo che ha terminato l'esecuzione, sei libero di gestirli come desideri.

C'è solo una regola generale, ovvero che lo stato di uscita 0 presuppone che il programma sia stato completato senza errori. Inoltre, lo stato di uscita negativo è di solito che si presume essere una chiusura a causa di un errore imprevisto, mentre si presuppone che uno stato di uscita positivo sia una (più o meno) terminazione aggraziata.

Ma ancora: se non ci sono file batch che chiamano il tuo codice, nessuno reagirà mai allo stato di uscita, e quindi puoi restituire quello che vuoi, non avrà alcun effetto.

2

Il codice di uscita è semplicemente informativo e può essere basato sul vostro disegno. I codici Microsoft sono importanti perché il software MS può provare a riconoscerli, allo stesso modo su Linux esiste un different set di codici predefiniti concordati. Non farà male usare uno dei set.

Problemi correlati