Exceções em Java
As exceções em Java referem-se a erros que podem ser gerados durante a execução de um programa. Como o nome sugere, trata-se de algo que interrompe a execução normal do programa. Em Java, as exceções são divididas em duas categorias: Unchecked (não verificadas) e Checked (verificadas).
1. Unchecked Exception
Neste tipo de exceção o compilador Java não verifica o código-fonte para determinar se a exceção está sendo capturada. Sendo assim, o tratamento deste tipo de exceção é opcional.
2. Checked Exception
Ao contrário de uncheck exception, neste tipo de exceção o compilador Java verifica o código-fonte para determinar se a exceção está sendo capturada. Se uma exceção verificada não for capturada (não estiver sendo tratada no código-fonte), o compilador acusa a possível exceção e obriga o programador a trata-la. Esta exceção pode ser tratada de duas formas: através da estrutura try-catch-finally ou por meio da clausula throws.
Uso da estrutura try-catch-finally
A estrutura try-catch permite a previsão de erros de execução. Esta estrutura tem como função desviar de um programa caso ocorram alguns tipos de erros, predefinidos durante o processamento das linhas, e evitar que o programador precise fazer testes de verificação e avaliação antes de realizar certas operações. Quando um erro ocorre, ele gera uma exceção que pode ser tratada pelo programa. A estrutura try-catch-finally pode ser usada tanto como Unchecked Exception como com Checked Exception. Existem muitas exceções que podem ser geradas pelas mais diversas classes e enumerá-las seriam um processo dispendioso e desnecessário, pois as exceções que devem ser obrigatoriamente tratadas (Checked Exceptions) são apontadas pelo próprio compilador.
A estrutura try-catch-finally possui a seguinte sintaxe:
try{
conjunto_de_instrucoes
} catch {
tratamento_de_erro1
} catch { tratamento_de_erro2
} catch { tratamento_de_erroN
} finally conjunto_de_instrucoes
}
Toda vez que a estrutura try é utilizada, obrigatoriamente em seu encerramento (na chave final) deve existir pelo menos um catch a não ser que ela utilize a instrução finally. A sintaxe apresentada pode ser interpretada como: tente executar o conjunto de instruções do try que estão entre chaves; se houver algum erro, execute o tratamento no catch. Depois de tratado o erro, a execução do programa continua a partir do final do último do catch. O finally é opcional e fornece um conjunto de códigos que é sempre executado, independentemente de uma exceção ocorrer ou não.