Neste tutorial, você aprenderá sobre diferentes tipos de erros e exceções que são integrados ao Python. Eles são gerados sempre que o interpretador Python encontra erros.
Vídeo: Manipulação de exceções Python
Podemos cometer certos erros ao escrever um programa que podem levar a erros quando tentamos executá-lo. Um programa python termina assim que encontra um erro não tratado. Esses erros podem ser amplamente classificados em duas classes:
- Erros de sintaxe
- Erros lógicos (exceções)
Erros de sintaxe Python
O erro causado por não seguir a estrutura adequada (sintaxe) da linguagem é denominado erro de sintaxe ou erro de análise .
Vejamos um exemplo:
>>> if a < 3 File "", line 1 if a < 3 SyntaxError: invalid syntax
Conforme mostrado no exemplo, uma seta indica onde o analisador encontrou o erro de sintaxe.
Podemos notar aqui que :falta dois pontos na ifdeclaração.
Erros lógicos Python (exceções)
Os erros que ocorrem no tempo de execução (após passar no teste de sintaxe) são chamados de exceções ou erros lógicos .
Por exemplo, ocorrem quando tentamos abrir um arquivo (para leitura) que não existe ( FileNotFoundError), tentamos dividir um número por zero ( ZeroDivisionError), ou tentamos importar um módulo que não existe ( ImportError).
Sempre que esses tipos de erros de tempo de execução ocorrem, o Python cria um objeto de exceção. Se não for tratado corretamente, ele imprime um rastreamento desse erro junto com alguns detalhes sobre por que o erro ocorreu.
Vejamos como o Python trata esses erros:
>>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'
Exceções integradas ao Python
Operações ilegais podem gerar exceções. Existem muitas exceções integradas em Python que são levantadas quando ocorrem erros correspondentes. Podemos visualizar todas as exceções integradas usando a local()função integrada da seguinte maneira:
print(dir(locals()('__builtins__')))
locals()('__builtins__')retornará um módulo de exceções, funções e atributos integrados. dirnos permite listar esses atributos como strings.
Algumas das exceções integradas comuns na programação Python, juntamente com o erro que as causa, estão listadas abaixo:
| Exceção | Causa do erro |
|---|---|
AssertionError | Gerado quando uma assertinstrução falha. |
AttributeError | Gerado quando a atribuição de atributo ou referência falha. |
EOFError | Gerado quando a input()função atinge a condição de fim de arquivo. |
FloatingPointError | Gerado quando uma operação de ponto flutuante falha. |
GeneratorExit | Aumenta quando o close()método de um gerador é chamado. |
ImportError | Gerado quando o módulo importado não é encontrado. |
IndexError | Gerado quando o índice de uma sequência está fora do intervalo. |
KeyError | Gerado quando uma chave não é encontrada no dicionário. |
KeyboardInterrupt | Gerado quando o usuário pressiona a tecla de interrupção ( Ctrl+Cou Delete). |
MemoryError | Gerado quando uma operação fica sem memória. |
NameError | Gerado quando uma variável não é encontrada no escopo local ou global. |
NotImplementedError | Gerado por métodos abstratos. |
OSError | Gerado quando a operação do sistema causa erro relacionado ao sistema. |
OverflowError | Gerado quando o resultado de uma operação aritmética é muito grande para ser representado. |
ReferenceError | Gerado quando um proxy de referência fraco é usado para acessar um referente da coleta de lixo. |
RuntimeError | Gerado quando um erro não se enquadra em nenhuma outra categoria. |
StopIteration | Gerado pela next()função para indicar que não há mais nenhum item a ser retornado pelo iterador. |
SyntaxError | Gerado pelo analisador quando um erro de sintaxe é encontrado. |
IndentationError | Gerado quando há indentação incorreta. |
TabError | Gerado quando o recuo consiste em tabulações e espaços inconsistentes. |
SystemError | Gerado quando o intérprete detecta um erro interno. |
SystemExit | Gerado por sys.exit()função. |
TypeError | Gerado quando uma função ou operação é aplicada a um objeto de tipo incorreto. |
UnboundLocalError | Gerado quando uma referência é feita a uma variável local em uma função ou método, mas nenhum valor foi vinculado a essa variável. |
UnicodeError | Gerado quando ocorre um erro de codificação ou decodificação relacionado ao Unicode. |
UnicodeEncodeError | Gerado quando um erro relacionado ao Unicode ocorre durante a codificação. |
UnicodeDecodeError | Gerado quando ocorre um erro relacionado ao Unicode durante a decodificação. |
UnicodeTranslateError | Gerado quando um erro relacionado ao Unicode ocorre durante a tradução. |
ValueError | Gerado quando uma função obtém um argumento do tipo correto, mas valor impróprio. |
ZeroDivisionError | Gerado quando o segundo operando de divisão ou operação de módulo é zero. |
Se necessário, também podemos definir nossas próprias exceções em Python. Para saber mais sobre eles, visite Exceções definidas pelo usuário do Python.
Podemos lidar com essas exceções embutidos e user-definidas em Python usando try, excepte finallydeclarações. Para saber mais sobre eles, visite as instruções do Python try, except e finally.








