Quem tem medo das exceções
0 Comentários Publicado por Guilherme em segunda-feira, outubro 16, 2006 at 6:42 PM.
Muitas pessoas que esão inciando em Java tem uma certa dificuldade em entender bem as exceções. É fundamental que todo programador tenha uma boa noção sobre declaração, criação e tratamento de exceções para não sejam produzidos mais e mais códigos sem um bom tratamento de erros.
Mas afinal o que é uma exceção ? uma exceção é um evento que ocorre durante a execução de um programa quando algum tipo de problema ocorre.
Já que estamos falando de Java, e tudo que não for um tipo primitivo deve ser um objeto (pelo menos...), as exceções não fogem a essa regra. As exceções são intâncias da classe java.lang.Exception que por sua vez é subclasse de java.lang.Throwable
A classe Throwable é a superclasse de todos os erros e exceções do Java. Ela possui duas subclasses:
Error - Representa situações incomuns que não não causadas por erros no programa.
Exception - Representa situações razoáveis que a aplicação deve tratar.
A figura abaixo mostra a hierarquia das exceções.

Os três tipos de exceções
Checked exceptions
Unchecked exceptions
Error
Para indicar as exceções que um método pode lançar, utilizamos a palavra-chave throws:Para informar a JVM qual código executar quando uma determinada exceção ocorrer, utilizamos as palavras-chave try e catch:Dicas: As checked exceptions forçam o desenolvedor a manipular os possíveis erros, então nunca faça isso:Dessa forma você está omitindo a exceção e nem mesmo poderá ver a pilha de erros.
Nunca faça:ouDessa forma você não conseguirá rastrear onde está a possível causa do erro. Sempre utilize o método printStackTrace() da classe Throwable: Ao utilizar o método printStackTrace(), preservamos a pilha de erros e tornamos mais fácil encontrar o local que originou o erro.
Mas afinal o que é uma exceção ? uma exceção é um evento que ocorre durante a execução de um programa quando algum tipo de problema ocorre.
Já que estamos falando de Java, e tudo que não for um tipo primitivo deve ser um objeto (pelo menos...), as exceções não fogem a essa regra. As exceções são intâncias da classe java.lang.Exception que por sua vez é subclasse de java.lang.Throwable
A classe Throwable é a superclasse de todos os erros e exceções do Java. Ela possui duas subclasses:
Error - Representa situações incomuns que não não causadas por erros no programa.
Exception - Representa situações razoáveis que a aplicação deve tratar.
A figura abaixo mostra a hierarquia das exceções.

Os três tipos de exceções
Checked exceptions
As checked exceptions são subclasses de Exception e representam condições inválidas (dados errados, problemas com banco de dados, problemas com a rede, etc...).
Se um método lançar uma checked exception deve manipulá-lo ou declará-lo.Unchecked exceptions
As unchecked exceptions são subclasses de RuntimeException e representam erros de programação.
Se um método lançar uma unchecked exception não será necessário manipulá-la ou declará-la.Error
Um Error representa condições excepicionais externas a aplicação que geralmente não podem ser recuperados. Por exemplo, suponha que uma aplicação precisa abrir alguns arquivos e recuperar informações, mas por algum mal funcionamento do sistema não consiga. Esse mal funcionamento irá causar um java.io.IOError.
Declarando e Manipulando exceçõesPara indicar as exceções que um método pode lançar, utilizamos a palavra-chave throws:
public void foo() throws MinhaException {
//
}
try {
// bloco onde podem ocorrer exceções
} catch (MinhaException exception) {
// tratar exceção
}
public void foo() {
try {
// algum código que possa lancar uma exceção
} catch (Exception exception) {
}
}
Nunca faça:
try {
// algum código que possa lancar uma exceção
} catch (Exception exception) {
System.out.println(exception);
}
try {
// algum código que possa lancar uma exceção
} catch (Exception exception) {
System.out.println(exception.getMessage());
}
try {
// algum código que possa lancar uma exceção
} catch (Exception exception) {
exception.printStackTrace();
}
0 Responses to “Quem tem medo das exceções”