371033 10
Computadores II
CEFET-MG
Prof.ª Kecia Aline Marques Ferreira
Tratamento de Exceções
Kecia Marques
2
Tratamento de Exceções
Conceito
Ausência de mecanismos para exceções em LP
Mecanismos para exceções em LP
Lançamento de Exceções
Tratamento de Exceções
Propagação de Exceções
Relançamento de Exceções
Continuação após o Tratamento de Exceções
Kecia Marques
3
Conceito
Robustez: é a capacidade de um software continuar em operação corretamente mesmo em condições anormais.
Problemas: Como prevenir-se de erros em tempo de execução? Como contornar situações anormais?
Exemplos de situações anormais: divisão por zero, fim de arquivo, overflow, utilização de um objeto não inicializado, acesso a um índice inválido de um vetor.
Kecia Marques
4
Conceito
Exceção:
“é um evento ocorrido durante a execução de um programa que desvia o fluxo normal de instruções. ”
“É uma condição provocada por uma situação excepcional que requer uma ação específica imediata.” Varejão, 2004.
Kecia Marques
5
Ausência de Mecanismos para
Exceções
Quando
a LP utilizada não fornece mecanismos para exceções, o programador usa recursos como:
Abortar o programa.
Utilizar códigos de erro.
Ex.: uma função para ler dados de entrada. Caso algum dos dados seja inválido, a função retorna –1.
Kecia Marques
6
Ausência de Mecanismos para
Exceções
Testar a condição anormal antes que ela ocorra.
Ex.: if (x!=0)
div = y/x; else cout << “Divisão por zero”;
Consequências:
Programas menos confiáveis.
Programas com legibilidade prejudicada.
Exemplos
de LP sem mecanismos para exceções: C e Pascal.
Kecia Marques
7
LP com Mecanismos para
Exceções
Promovem os seguintes benefícios:
A diminuição da sobrecarga do texto do programa.
Desta forma, os programas têm melhor legibilidade.
Os programas obtidos são mais confiáveis. Isso ocorre por que fica mais fácil tratar as condições anormais. Exemplos de LP com esses