Cursos / Informática para Internet / Programação Orientada a Objetos / Aula

arrow_back Aula 11 - Tratamento de Exceções

Hierarquia de Exceções

Primeiramente, o que é uma exceção em Java? De onde ela vem? Opa... Uma pergunta de cada vez!

Inicialmente, vamos dar uma olhada na terminologia “exception”, que significa “condição excepcional” a qual é uma ocorrência que altera o fluxo normal de execução do programa. Um monte de coisas pode causar exceções, incluindo falha de hardware, exaustão de recursos, ou até mesmo velhos Bugs.

Agora, respondendo a primeira pergunta: um “exception” em Java é um Objeto do tipo Exception. Sendo assim, como a exceção é um objeto, o que você receberá quando ocorrer uma condição de falha será um Objeto. Veremos mais adiante como é a sintaxe para capturar uma exceção em Java!

Não fiquem ansiosos... Vamos agora responder a segunda pergunta (de onde ela vem?), analisando a sua árvore “genealógica”, temos o seguinte figura:

Hierarquia das classes de exceções

Como você pode ver, existem duas classes que derivam diretamente de Throwable: Exception e Error. Classes que derivam de Error representam situações não usuais as quais não são causadas por erro de programa, e indicam coisas que não acontecem normalmente durante a execução do programa, tal como o famoso Out of memory da JVM. Geralmente, a nossa aplicação não será capaz de se recuperar de um erro proveniente de Error, sendo assim, não vamos esquentar a cabeça com isso!

Vamos então ao que interessa. Em geral, uma exceção representa algo que acontece NÃO como resultado de um erro de programação, mas sim devido a algum recurso que não está disponível ou quando alguma outra condição requerida para a execução correta do programa não está presente no momento da execução. Por exemplo, se a sua aplicação está querendo se comunicar com outra aplicação ou computador que não está respondendo, temos então um caso em que a exceção não foi causada por um Bug, nesse caso, será lançada uma RuntimeException, como visto na figura Hierarquia das Classes de Exceções.

Muito bom, aprendi o que é uma Exception em Java, sei a diferença entre um Erro e uma Exceção, sei que ela é um Objeto normal e até que herda de Throwable! Ótimo, tudo! Mas, não sei nada da sintaxe, como fico sabendo que um método pode causar uma exceção? Como eu trato uma exceção? Calma, calma... Agora, é que vai começar a parte boa da história, vamos falar sobre a SINTAXE das exceções! Então, vamos lá...

Versão 5.3 - Todos os Direitos reservados