2012-05-01 1 views
5

Sono relativamente nuovo a Stackoverflow e Java, ma ho una piccola esperienza in C. Mi è piaciuto il modo molto pulito di C di uscire dai programmi dopo un malfunzionamento con la funzione 'exit()'.exiting functions in main

Ho trovato una funzione simile System.exit() in Java, ciò che differisce dalla funzione C e quando dovrei usare un 'System.exit()' al posto di un semplice 'ritorno' in Java come in un vuoto funzione principale?

risposta

5

System.exit() terminerà la JVM initilized per questo programma, in cui return; restituisce solo il controllo dal metodo corrente ritorna al chiamante


anche Vedi

+0

È così male? Se la funzione principale fallisce, una terminazione della JVM va bene se si tratta di un programma semplice? –

+0

Sì dovrebbe essere ok con normale progra, ma per lo più è usato dove vogliamo terminare l'applicazione dopo aver realizzato tutte le risorse acquisite –

+0

sì, grazie mille. –

1

System.exit() potrebbe essere utile quando sei pronto per terminare il programma a condizione dell'utente (ad es. un'applicazione GUI). return viene utilizzato per tornare all'ultimo punto nell'esecuzione del programma. I due sono molto diverse operazioni.

2

System.exit() uscirà dal programma indipendentemente da chi lo chiama o perché. return nel main uscirà dallo main() ma non uccide nulla che lo abbia chiamato. Per i programmi semplici, non c'è differenza. Se vuoi chiamare il tuo principale da un'altra funzione (che potrebbe essere fare misurazioni delle prestazioni o gestione degli errori) è importante. La terza opzione consiste nel lanciare un'eccezione di runtime non rilevata. Ciò ti consentirà di uscire dal programma in profondità nello stack delle chiamate, consentire a qualsiasi codice esterno che chiama il tuo principale un modo programmatico di intercettare e gestire l'uscita e, quando esci, dare al contesto dell'utente ciò che è andato storto e dove (come opposto a uno stato di uscita come 2).