Excepcoes em java

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1208 palavras )
  • Download(s) : 0
  • Publicado : 7 de agosto de 2012
Ler documento completo
Amostra do texto
LTP-I I

02/04/2012 – 07/04/2012

3. TRATAMENTO DE EXCEPÇÕES
3.1. Introdução
Sempre que se pense ou se escreve um programa o sonho é responder plenamente as nossas necessidades sem que nada de incorrecto, de estranho ou pouca usual aconteça. No entanto nem sempre isto acontece. Por exemplo podemos ver situações em que o utilizador é pedido pelo programa para introduzir um inteiro, porém nemsempre o utilizador introduz valor numérico inteiro. Estas situações causam problemas na execução que rompe o cumprimento do programa. Estes problemas podem serem vistos em duas vertentes:  Uma excepção (excption), que é um objecto que descreve uma situação não usual. As excepções são lançadas ( thrown) por um programa e podem ser apanhadas ( caught) e manipuladas ( handled) por outra parte doprograma. Um erro (error), que é também representado como um objecto em Java, mas normalmente representa uma situação irrecuperável e não deve ser apanhada.



3.2. Definição Uma excepção é um evento ou condição que ocorre durante a execução de um programa e que interfere no fluxo normal das instruções. Em Java, a ocorrência de erros durante a execução de um programa não significanecessariamente que o programa termina, pois linguagem possui um mecanismo para indicar partes críticas num programa e recuperar eventuais erros ocorridas nestas partes, sem parar a execução do programa, este mecanismo é designado por Excepção (Exception). Uma Excepção é um sinal gerado pela máquina virtual de Java em tempo de execução do programa, que é comunicado ao programa indicando a ocorrência de umerro recuperável. As excepções visam fundamentalmente: – Encapsularem condições inesperadas – Fornecerem um modo de tornar os programas robustos – Tentarem isolar o fluxo de controlo normal da execução

1 Américo I. Langa

LTP-I I

02/04/2012 – 07/04/2012

3.3. Causas das excepções
Muitos tipos de erros podem provocar uma excepção, como por exemplo:  JVM pode detectar condiçõesirrecuperáveis:  Uma classe não pode ser carregada;  Uso duma referência null.  Tanto as classes base como as criadas por nós podem atirar excepções:  Tentar aceder um array fora de seus limites;  Tentar abrir um arquivo inexistente;  Tentar ler um ficheiro para além do fim deste;  Tentar abrir uma URL inexistente;  Divisão por zero;  Validação de dados;  Excepção da lógica do negócio;  Tentarcalcular a raiz quadrada de um número negativo. As excepções causam a terminação da execução a menos que sejam tratadas (handled) pelo programa.

3.3. Manipulação de Excepções
Uma excepções diz-se lançada (thrown) no ponto onde ocorre e diz-se capturada (catched) no ponto para onde o controlo de execução é transferido e manipuladas ( handled) por outra parte do programa. Um programa pode lidar comuma excepção de uma das seguintes formas:  Ignorar, o programa irá terminar de forma anormal e produzir uma mensagem adequada  Manipulá-la quando ocorrer, o programa manipula excepção usando um bloco try-catch

3.3.1. Lançamento de Excepção
 Quando ocorre um erro recuperável dentro de um método, este cria um objecto da classe Exception e passa este objecto para o sistema de execução do Java(runtime) - lança uma Excepção;  Este objecto contém informações sobre a excepção (seu tipo e o estado do programa quando o erro ocorreu);  A partir deste momento, o sistema de execução do Java responsabiliza-se por encontrar o código que trate o erro ocorrido;  O sistema passa a procurar o código capaz de tratar a excepção;
2 Américo I. Langa

LTP-I I

02/04/2012 – 07/04/2012

 Alista de “candidatos” para este tratamento vem da pilha de chamadas de métodos que antecederam o método que lançou a excepção;  O sistema de execução do Java “percorre a pilha de chamadas, e começa com o próprio método onde ocorreu o erro, na busca de um método que possua um gestor de Excepção (catch) adequado.

3.3.2. Captura de Excepção
 Se a excepção não for tratada e chegar à função main,...
tracking img