HOWTO · Java
Fim de um programa Java
O artigo explica as formas mais seguras de terminar um programa em Java.
Nesta página
Este artigo mostra todas as melhores formas que podemos utilizar para terminar um programa em Java. Passaremos por alguns exemplos para compreender a situação e a forma mais fácil de lidar com ela.
System.exit() para Terminar um programa em Java
Para terminar um programa Java, podemos utilizar o método exit() da classe System. É a forma mais popular de terminar um programa em Java. O System.exit() termina a máquina virtual Java(JVM) que sai do programa actual que estamos a executar.
Abaixo está um exemplo simples que utiliza o método System.exit(). Note-se que é necessário um número inteiro, que é o código de estado. Passamos 0 para a função exit(), o que indica que a terminação acontece com sucesso sem qualquer erro. Um estado não-zero como 1 e -1 diz ao compilador para terminar o programa com algum erro ou mensagem.
Pode ver que a saída apenas imprime o Statement 1 no exemplo abaixo porque o programa sai após a sua execução e o Statement 2 nunca foi capaz de ser executado.
public class Main {
public static void main(String[] args) {
System.out.println("Statement 1");
System.exit(0);
System.out.println("Statement 2");
}
}
Resultado:
Statement 1
Process finished with exit code 0
return para Sair de uma Função em Java
Por vezes podemos ter de terminar uma função em vez da máquina virtual Java, e é quando a palavra-chave “retorno” de Java entra em jogo. Esta palavra-chave é muito útil quando estamos a utilizar funções no nosso programa.
Em linguagem formal, o return pode ser utilizado para completar a execução do método. Isto significa que podemos utilizar esta forma para sair da nossa função.
O exemplo seguinte mostra como podemos devolver um String da função. Se o valor for false, retornará Statement 2 e depois ignorará Statement 3, uma vez que a execução deste método foi concluída.
public class Main {
public static void main(String[] args) {
boolean value = false;
String getValueFromFunc = func(value);
System.out.println(getValueFromFunc);
}
public static String func(boolean value) {
if (value) {
System.out.println("Statement 1");
} else {
return "Statement 2";
}
return "Statement 3";
}
}
Resultado:
Statement 2
Mas e se o valor for verdadeiro? Vamos descobrir no próximo exemplo.
O output imprime o Statement 1, bem como o Statement3, que foi ignorado no exemplo anterior. Aconteceu porque o bloco de declaração da condição if tem println em vez de um return.
public class Main {
public static void main(String[] args) {
boolean value = true;
String getValueFromFunc = func(value);
System.out.println(getValueFromFunc);
}
public static String func(boolean value) {
if (value) {
System.out.println("Statement 1");
} else {
return "Statement 2";
}
return "Statement 3";
}
}
Resultado:
Statement 1
Statement 3