Qual a diferença entre system.exit( 0 ) e System.exit( 1 )? E se existe outro argumento?
Vlw
System.exit
1 Resposta
Na realidade todo programa tem um codigo de retorno, que indica se a aplicação executou adequadamente ou não, esses valores não tem qualquer significado para a JVM, e não vão fazer diferença alguma na sua aplicação, eles geralmente são usados por scripts de execução automatica ou algo desse tipo, e com esse retorno o script pode identificar se a execução foi bem sucedida, por exemplo, para executar uma aplicação externa de dentro de sua aplicação Java você pode usar a classe Runtime, mas como você vai saber se a aplicação executou adequadamente ou se deu um erro? Pegando esse retorno, assim:
Process proc = Runtime.getRuntime().exec("notepad.exe c:/teste.txt");
int retorno = proc.getExitValue();
if(retorno==0){
System.out.println("Ok");
}else{
System.out.println("Erro");
}
Nesse caso eu assumi que o Notepad retorna 0 caso sua execução seja bem sucedida, mas poderia ser 5, 6, 999, qualquer coisa.
Geralmente, por convenção, adota-se o 0 para uma execução bem sucedida, e um outro valor diferente de 0 (-1 por exemplo) para um problema. O -1 poderia ser retornado caso o Notepad não encontrase o arquivo c:/teste.txt por exemplo, mas isso é uma decisão de quem desenvolveu a aplicação.
Outras linguagens tambem tem esse recurso, no C, C++ por exemplo, o metodo main retorna um int:
int main(){
if(execucao_ok){
return 0;
}else{
return -1;
}
}
Basicamente é isso, use 0 para um retorno normal e qualquer outro valor para um erro, essa é a convenção.