2. Objectivos
● Conhecer conceito de tratamento de erros
estuturado
● Saber usar try-catch-finally
● Distinguir entre verificação de erros e
tratamento de excepções
● Bubble exception
● Excepções mais comuns
● Criar custom exceptions
3. O que é um erro?
● um resultado negativo não é necessariamente
um erro!
● exemplo:
– ao fazer login indico um nome de utilizador que não
existe.
● não é um erro porque é um resultado expectável e a
aplicação sabe o que pode fazer a seguir: login
inexistente.
4. O que é um erro?
● exemplo:
– uma aplicação precisa de um parâmetro que está
num ficheiro de texto, no entanto esse ficheiro foi
apagado.
● é um erro porque não há nenhum caminho alternativo
para o código continuar a correr.
5. Tratamento de Erros Tradicional
● executar função + verificar error_status
– “dificil” de implementar
– verificamos o error_status depois de cada funçao...
linha sim linha não? verificamos só depois
daquelas funções que normalmente dão erros?
● on error goto TratamentoErro:
– pouco flexivel
– dentro do TratamentoErro temos que ter mais um
case com todas os erros possiveis e imaginarios...
6. Tratamento de Erros Estruturado
● Try – Catch – Finally
– try – tenta executar este código
– catch – se ocorrer um erro do tipo xpto então faz
isto
– finally – de qualquer forma faz sempre isto.
7. Verificação de erros e Tratamento
de Excepções
● o facto de conseguirmos tratar um erro não
quer dizer que abdiquemos de o tentar evitar
– exemplo: se sei que vou precisar de abrir um
ficheiro faz sentido que verifique primeiro se ele
existe.
8. Exercicio
● Criar novo projecto
chamado
0010_Excepcoes
10. Bubble Exception
● bubble => numa hierarquia de objectos refere-
se à passagem de uma classe para a sua base
classe
● bubble exception => se uma excepção não for
tratada onde ocorrer passa para o primeiro try-
catch que encontrar na call stack
11. Excepções mais comuns
● ArgumentException – argumento de um
procedimento inválido
● ArgumentNullException – argumento de um
procedimento inválido porque é igual a null
● ArgumentOutOfRangeException – argumento
de um procedimento inválido porque está fora
dos limites definidos para esse parametro
12. Custom Exceptions
● Exception é um objecto
– então podemos herdar dele e criar uma
implementação mais descritiva.
● Boa prática
– criar custom exceptions
13. Objectivos
● Conhecer conceito de tratamento de erros
estuturado
● Saber usar try-catch-finally
● Distinguir entre verificação de erros e
tratamento de excepções
● Bubble exception
● Excepções mais comuns
● Criar custom exceptions