Programação Avançada

Propaganda
Prof. Natalia Castro Fernandes
Mestrado em Telecomunicações – UFF
2º semestre/2012
Exceções
 Ocorrem quando algum evento não desejado ocorre
 Erros não previstos
 Eventos esperados, mas não desejados
 Se uma exceção ocorre e não é tratada, o programa
termina emitindo uma mensagem
Classes de exceções
 O Python define algumas classes de exceções
 Exception Classe

Base para todas as exceções
 AttributeError
 Falha no acesso ou atribuição a atributo de classe
 IOError
 Falha no acesso a arquivo inexistente ou outros de E/S
 IndexError
 Índice inexistente de sequência
 KeyError
 Chave inexistente de dicionário
Classes de exceções
 O Python define algumas classes de exceções
 NameError

Variável inexistente
 SyntaxError
 Erro de sintaxe (código errado)
 TypeError
 Operador embutido aplicado a objeto de tipo errado
 ValueError
 Operador embutido aplicado a objeto de tipo certo mas valor
inapropriado
 ZeroDivisionError
 Divisão ou módulo por zero
Exercício
 Entre no interpretador e gere cada um dos erros
anteriores.
Classes de exceção
 O usuário também pode criar suas próprias classes de
exceção
 Serão chamadas em pontos do código especificados pelo
usuário
 Quando uma exceção ocorre, diz que o programa
gerou uma exceção (raise)
 Um programa bem feito deve ser capaz de capturar
(catch) todas as exceções que possam ser geradas

Evita que o programa termine com uma mensagem de erro
inesperada
Classes de exceções
 O Python também define uma classe para tratar
warnings
 Warnings são avisos que devem ser observados, mas que
não são suficientemente graves para gerar um erro
 Warnings também podem ser definidos pelo usuário
Tratando exceções com try/except
 Se um trecho de código pode gerar uma exceção, mas
você não quer que o programa termine, é possível
tratar com o try/except
 Uso:
 try:

Comandos
 except:

comandos
Exemplos
Essa clausula pega qualquer tipo
de exceção e retorna a mesma
mensagem.
Exemplos
 Tratando separadamente diversos tipos de exceção
Exemplos
 Agrupando erros
Exemplos
 Usando o erro
gerado pelo Python
Palavra chave
para não fazer
nada
Variável para pegar a
mensagem de erro padrão
Variável para pegar a
mensagem de erro padrão
Gerando exceções em seu código
 Para gerar uma exceção, use o comando raise
 Uso
 raise classe
 raise classe, mensagem
 raise classe (mensagem)
Classe de exceção
Listagem de classes de
exceção definidas pelo
Python disponível no
manual ou digitando:
import exceptions
print dir(exceptions)
Exemplos
Criando uma classe de exceções
 Basta criar uma classe normal, a qual herda de uma
classe de exceção
Exemplos
Exemplos
Clausula else
 O comando try pode ser terminado com uma cláusula
else
 O código do else só é executado na ausência de exceção
no bloco try
 Uso
 try:

Código
 except Exceções:
 Código de tratamento da exceção
 else:
 Código executado se não ocorrem exceções
Clausula finally
 A cláusula finally sempre é executada, acontecendo
exceção ou não
 Pode ser usada para restabelecer alguma variável para
um valor default, por exemplo
Exemplo
Exercício
 Gere uma função que escolhe um número inteiro entre
0 e 10 aleatoriamente. O usuário poderá entrar com
números até acertar o valor escolhido. Nesse caso, o
programa termina com uma mensagem de sucesso.
Caso o usuário acerte de primeira, o programa deve
gerar uma exceção com a mensagem “Você tem
poderes psíquicos”, gerar um novo número e continuar
o processo. Nenhuma outra exceção deve terminar o
programa ou escrever uma mensagem na tela. (Use try,
except, else e raise)
Download