A geração de erros no Java gera objetos de classe de erro, o tratamento dos mesmos passa pela manipulação destes objetos de erro. O tratamento de erros em Java é baseado nas palavras reservadas “try … catch … finally”.
Para executar um bloco de código protegido por um tratamento de erros, basta colocar o mesmo em um bloco após a palavra “try”, e para cada erro que desejamos tratar devemos colocar uma cláusula “catch ( TipoErro variavel-erro ) {}” ou uma cláusula “finally” que é executada após a execução do bloco “try”.
Quando um método indica que pode gerar um determinado erro através da cláusula “throws” ao ser chamado este método deverá estar dentro de um bloco de “try” A figura abaixo mostra a hierarquia de classes envolvidas no tratamento de erros

Para criar erros personalizados os mesmos devem ser subclasses de Exception, de maneira que ao declarar os métodos que podem gerar os erros personalizados deve ser citado o erro que pode ser gerado com a cláusula “throws”, observar que erros da classe “Error” ocorrem quando erros da Java Virtual Machine ocorrem de maneira que os mesmos não podem ser tratados.
Os erros da classe “RunTimeException” possuem uma particularidade : quando são citados numa cláusula “throws” não é obrigatório que a execução ocorra num bloco de “try”, isto porque se tratam de erros como acesso a um objeto não instanciado, acesso a elementos de vetor que não existem.
Veja o exemplo abaixo:
01 public class ExceptionCampoVazio extends Exception {
02 public ExceptionCampoVazio(String NomeCampo) {
03 super("Campo " + NomeCampo + " precisa ser preenchido");
04 }
05 }
A classe ExceptionCampoVazio extende a classe Exception, o que torna possível utiliza-la nas atividades de geração e tratamento de erros, observar que a classe recebe no seu construtor o nome do campo que precisa ser preenchido e chama o construtor “super” da classe Exception, enviando a mensagem que deve ser armazenada no erro.
A classe Venda abaixo indica no seu método setNome que este método pode gerar (Throws) um erro do tipo ExceptionCampoVazio, sendo e esta classe de erro filha de Exception somos obrigados a tratar este erro, portanto no método main da classe TesteException, quando chama o método setNome realiza dentro de um bloco de try…catch.
07 public class Venda { |
|
