System.exit

1 resposta
P

Qual a diferença entre system.exit( 0 ) e System.exit( 1 )? E se existe outro argumento?
Vlw

1 Resposta

J

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.

Criado 19 de janeiro de 2007
Ultima resposta 19 de jan. de 2007
Respostas 1
Participantes 2