Tratamento de Exceções e Erros
Umas das utilidades proporcionadas pela orientação a objetos de Java é a facilidade em tratar possíveis erros de execução chamados de exceções.
Sempre que um método de alguma classe é passível de causar algum erro, então, podemos usar o método de tentativa - o try.
Tudo que estiver dentro do bloco try será executado até que alguma exceção seja lançada, ou seja, até que algo dê errado.
Quando uma exceção é lançada, ela sempre deve ser capturada. O trabalho de captura da exceção é executado pelo bloco catch.
Um bloco try pode possuir vários blocos de catch, dependendo do número de exceções que podem ser lançadas por uma classe ou método.
O bloco catch obtém o erro criando uma instância da exceção. Portanto, a sintaxe do bloco try catch é:
try {
// código a ser executado
} catch (ClasseDeExceção instânciaDaExceção) {
// tratamento da exceção
}
Exceções Checked são aquelas no qual você é obrigado a tratá-la, seja com um bloco try-catch ou mesmo com um throws (relançando a mesma para outro local).
As exceções são, na verdade, instâncias de classes. E como qualquer classe ou objeto, podemos facilmente manipular.
Existem métodos comuns entre todas as classes de Exceções
Uma RuntimeException é uma exceção que você pode lançar sem ter de colocar na clausula throws (mas se você quiser, você pode), e você pode chamar um método que lança esse tipo de exceção, sem fazer o bloco try (se você quiser, pode fazer também).