System.exit(0) e System.exit(1 ) qual a diferença

Java

09/04/2009

Ae pessoal sempre que eu pego uns codigo java aqui para estudar tem uns que usam System.exit(0) outro System.exit(1) para encerrar a aplicação, queria saber se existe alguma diferença entre um modo de fazer e outro. Obrigado.
Alex Florentino

Alex Florentino

Curtidas 0

Respostas

Edinei Manica

Edinei Manica

09/04/2009

[quote="ualex"]Ae pessoal sempre que eu pego uns codigo java aqui para estudar tem uns que usam System.exit(0) outro System.exit(1) para encerrar a aplicação, queria saber se existe alguma diferença entre um modo de fazer e outro. Obrigado.
System.exit(1); é para quando vai sair do programa e deu um erro !
GOSTEI 0
Alex Florentino

Alex Florentino

09/04/2009

System.exit(1); é para quando vai sair do programa e deu um erro !
Hum interessante mas e dae ? desculpa minha ignorancia mas qual a diferença tipo então quando é
System.exit(0);
é um encerramento normal. e quando for
System.exit(1);
é quando deu erro. Mas tipo quando eu dou System.exit(1) ele cria um log em algum lugar ?
GOSTEI 0
Cleuber_s

Cleuber_s

09/04/2009

Independente do erro. Quando ocorre algum durante o fechamento.
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="ualex"]é quando deu erro. Mas tipo quando eu dou System.exit(1) ele cria um log em algum lugar ?
Das docs do metodo: [list]Terminates the currently running Java Virtual Machine. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination.[/list] Enviar erros quando um programa termina abruptamente envolve o tratamento de signal handlers para que o sistema operacional capture de que modo o programa terminou. É para isso que serve o codigo. valeuz...
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

Mais informações em [url=http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exit(int)]Runtime.exit(int)[/url]. valeuz...
GOSTEI 0
Alex Florentino

Alex Florentino

09/04/2009

ok. valeu vou da uma lida
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="ualex"]ok. valeu vou da uma lida
A saída do seu programa pode ser capturada pelo sistema operacional afim de avaliar se este foi terminado de forma indevida. Para saber a saída do último programa consulte no prompt de comando a varíavel ERRORLEVEL. echo %errorlevel% Um exemplo de uso: Ex.: if ERRORLEVEL LEQ 0 goto normaly :normaly @echo O programa terminou com sucesso! :!:
GOSTEI 0
Alex Florentino

Alex Florentino

09/04/2009

Olha que bacana com esse codigo vc consegue disparar uma thread quando um System.exit é acionado...
public class TesteDeSaida {
	public static void main(String args[]) {
		Runtime.getRuntime().addShutdownHook(new Thread() {        
	       			public void run() {
        	    			System.out.println("Ola o System.exit foi acionado");
        			}
			}
		);
		for(int i=0; i < 1000; i++) {
			System.out.println("Ola estou aqui");	
			if(i == 10)
				System.exit(0);
		}


	}

}
e não entendi muito bem. na hora que ele cria a classe interna.... Bom mas de qualquer forma fica registrado essa possibilidade. ah achei nesse site :[url]http://javaalmanac.com/egs/java.lang/ExitHook.html[/url]
GOSTEI 0
POSTAR