Definição: Você sabe o que é o tratamento de exceções? Uma exceção é um evento, que ocorre durante a execução de um programa. Interrompe o fluxo normal das instruções do programa. Quando ocorre um erro dentro de um método, o método cria um objeto e o transfere para o sistema de tempo de execução.
O objeto, chamado de objeto de exceção, contém informações sobre o erro, incluindo seu tipo e o estado do programa quando o erro ocorreu. Criar um objeto de exceção e entregá-lo ao sistema de tempo de execução é chamado de gerar uma exceção .
Depois que um método lança uma exceção, a Java virtual Machine tenta encontrar algo para manipulá-lo ou irá interromper o fluxo de execução. O conjunto de possíveis blocos para manipular a exceção é a lista ordenada de métodos que foram chamados para acessar o método em que ocorreu o erro. A lista de métodos é conhecida como pilha de chamadas
A primeira etapa na construção de um manipulador de exceções é incluir o código que pode lançar uma exceção em um try. Em geral, um try se parece com o seguinte:
try {
código
}
pegar e finalmente bloqueia. . . O segmento no exemplo rotulado código, contém uma ou mais linhas legais de código que poderiam lançar uma exceção.
Você associa manipuladores de exceção a um try fornecendo um ou mais catch diretamente após o try . Nenhum código pode estar entre o final do trybloco e o começo do primeiro catchbloco.
try{
//Seu codigo
} catch ( ExceptionType name ) {
//Trata exception 1
} catch ( ExceptionType name ){
//Trata exception 2
}
Cada catch é um manipulador de exceção trata um tipo de exceção indicado por seu argumento. O tipo de argumento ExceptionType, declara o tipo de exceção que o manipulador pode manipular e deve ser o nome de uma classe que herda da Throwable.
O bloco finally sempre é executado. Isso garante que o finally seja executado mesmo se ocorrer uma exceção inesperada. Colocar o código de limpeza em um finally é sempre uma boa prática, mesmo quando nenhuma exceção é esperada.
class Example1 {
public static void main(String args[]) {
int num1, num2;
try {
/* Este bloco pode lançar uma exceção
*/
num1 = 0;
num2 = 62 / num1;
System.out.println(num2);
System.out.println("Fim do bloco try");
}
catch (ArithmeticException e) {
/*
Executado apenas se ocorrer uma exceção no try
*/
System.out.println("Não faça divisões por zero no java");
}
catch (Exception e) {
/*
Tratamento de exceções genérico pode tratar qualquer tipo de exceção no java.
*/
System.out.println("Uma exceção ocorreu");
}finally{
System.out.println("Eu sempre vou ser executado!");
}
System.out.println("Fora do bloco try catch finally");
}
}