3. Excepções
Excepção vem do latim excedere, com o prefixo EX:”fora”, +
CEDERE: “sair, ir embora, retirar-se, abandonar”. Significava
“ir além da conta”.
Actualmente excepção refere-se a algo ou alguém que se
diferencia ou difere da norma, que se desvia do normal ou
da regra.
Pode também ser utilizado a indivíduos, por exemplo, dizer
que um/a menino ou menina é uma excepção, quer dizer
que eles são diferentes dos demais, ou possuem um modo
de pensar e/ou agir que é diferente das outras pessoas em
seu modo de viver.
4. Em java uma excepção seria uma indicação de um
problema que ocorre durante a execução de um
programa.
Ou poderiamos dizer que excepção em java nada mais é
do que um desvio do fluxo normal do programa. Indica
que houve um ou mais problemas durante execução de
um bloco do programa.
Se a excepção não for tratada, o programa pode parar.
Excepções em Java
5. Excepções Vs. Erros
Uma excepção pode ser prevista e resolvida pelo
programador durante a implementação de um
sistema ou programa.
Erro é algo inesperado, que não pode ser tratado e
que, na maioria das vezes aborta o sistema ou
programa.
Excepções em Java
6. Excepção: Erro:
O usuário digitou um valor
inválido. (Previsível)
O teclado sofreu alguma avaria
física, o usuário não pode mais
digitar valores com o teclado.
Solução: Solução:
A implementação de um
tratamento para a excepção
gerada pela digitação de um valor
inválido.
Não tem solução, pois um
programa de computador não
pode reparar um periférico de
computador.
7. Algumas das mais comuns excepções na
programação em Java
Excepção Quando Acontece
ArrayIndexOutOfBoundsEx
ception
Tentativa de acesso à posição
inexistente num array.
IllegalArgumentException Argumento formatado de forma
diferente do esperado pelo método.
ArithmeticException Problemas com operações numéricas,
tipicamente divisão por zero: int i = 10 /
0;
8. NullPointerException
Gerado pela tentativa de acessar
um objecto através de uma
referência nula, ou seja, antes do
objecto ser instanciado.
NegativeArraySizeException Gerado pela tentativa de criar
um array de tamanho negativo:
Image[] imagens = new Image[-
100];
9. NumberFormatException Tentativa de converter uma
String inválida em número.
NoClassDefFoundError Indica que a JVM não
conseguiu localizar uma
classe necessária durante a
execução.
10. Todas as classes em Java estendem directamente ou
indirectamente - da classe Object. E todas as excepções em Java
derivam da classe Throwable.
Eis as três modalidades de excepções existentes na linguagem
Java: Unchecked Exception, Checked Exception e Error.
Unchecked Exception (RuntimeException)
Representam situações que, geralmente, identificam erros de
programação (ou seja, o programa não é robusto). (Ex.: Acessar
índice inválido em um array - ArrayIndexOutOfBoundsException).
Hierarquia de Excepções em Java
11. Checked Exception
Representam situações que, geralmente, não são erros de
programação e sim indisponibilidade de recursos ou condição
necessária para a correcta execução do sistema ou de um
programa.
Error
Representam situações incomuns, que não são causadas pelo
programa, indicam situações que não acontecem usualmente
durante a execução dum programa.
Hierarquia de Excepções em Java
12.
13. CONCEITOS SOBRE TRATAMENTO DE
EXCEPÇÕES
Uma das diferenças mais evidentes entre um bom programa e
um mau programa é o tratamento de excepções, ou seja, a
capacidade que o seu programa tem de responder a situações
inesperadas.
Quando usamos um software, esperamos que ele seja, tolerante
à falhas. Quando um programador identifica uma possível falha
que pode ocorrer durante a execução de seus programas, ele
pode e deve codificar estratégias de tolerância e/ou correcção
desta falha, em um processo conhecido como tratamento de
excepções.
14. Importância do Tratamento de excepções
O tratamento de exceções permite que os programadores
criem programas mais robustos e tolerantes a falhas.
O tratamento de exceções permite aos programadores
remover código de tratamento de erro da ‘linha principal’ de
execução do programa.
15. Tratamento de excepções
Quando uma falha ocorre na execução de um programa, pode
gerar uma excepção. Gerar uma excepção é a sinalização ao
processo activo na máquina virtual de que alguma falha ocorreu.
Esse processo então pode "capturar" a excepção, quando
possível, e tornar a execução do código novamente válido dentro
do comportamento previsto para esse programa.
Existem três blocos de comandos básicos que permitem esse
tratamento de excepções: try, catch e finally.
Esses comandos usados em conjunto, garantem o
desenvolvimento de códigos robustos.
16. try
É o bloco de comandos que são passíveis de ocorrerem uma
excepção. Quando o programador sabe que um determinado
conjunto de instruções pode gerar algum tipo de excepção,
ele agrega esse bloco de comandos dentro de um bloco try. O
código contido dentro de um bloco try é chamado de código
protegido.
Tratamento de excepções
17. catch
É o bloco de comandos alternativos ao try, ou seja, se os
comandos do bloco try gerarem uma excepção então os
comandos do bloco catch serão executados no lugar deles. O
bloco catch é opcional, mas normalmente é implementado
junto a um bloco try.
Tratamento de excepções
18. finally
É um comando utilizado para delimitar um grupo de
instruções que será sempre executada ao final de um bloco
try-catch, independentemente de qual dos blocos anteriores
foi processado pela máquina virtual.
Tratamento de excepções
19. Eis um exemplo:
1 public void relatorio(int indice)
2 {
3 // Tratamento de exceções
4 try
5 {
6 // Tenta executar esse bloco de comandos
7 System.out.println(alunos[indice]);
8 }
Tratamento de excepções
20. (Continuação)
9 catch(ArrayIndexOutOfBoundsException erro)
10 {
11 // Se houver alguma excepão no bloco anterior,
12 // o bloco catch será executado
13 System.out.println("Aluno Inexistente");
14 }
15 catch (Exception erro) {
16 // Pode-se usar um catch para cada tipo de erro
17 // Possível no bloco try
Tratamento de excepções
22. Bibliografia
Deitel, H. M. & Deitel, P. J. Java: como programar, Editora Bookman.
6ª Edição. São Paulo: 2005.
www.devmedia.com.br/tratando-excecoes-em-java/25514 acessado
no dia 11 de Abril de 2015.
www.devmedia.com.br/trabalhando-com-excecoes-em-java/27601
acessado no dia 11 de Abril de 2015.
Gomes, Bruno. Tratamento de Excepções PDF.
Campos, Leonardo Barretos Tratamento de Excepções PDF.
Gaúcho, Filipe. Módulo 3 - Java Básico e Intermediário. Instituto de
Software do Ceará.
Tratamento de excepções