Erros do Python e exceções incorporadas
Erros do Python e exceções incorporadas
Neste tutorial, você aprenderá sobre os diferentes tipos de erros e exceções integrados ao Python. Eles são gerados sempre que o interpretador Python encontra erros.
Vídeo:manipulação de exceção do Python
Podemos cometer alguns erros ao escrever um programa que levam a erros quando tentamos executá-lo. Um programa python termina assim que encontra um erro não tratado. Esses erros podem ser classificados em duas classes:
- Erros de sintaxe
- Erros lógicos (exceções)
Erros de sintaxe do Python
O erro causado por não seguir a estrutura adequada (sintaxe) da linguagem é chamado de erro de sintaxe ou erro de análise .
Vejamos um exemplo:
>>> if a < 3
File "<interactive input>", 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 dois pontos
:
está faltando no if
declaração. Erros lógicos do Python (exceções)
Erros que ocorrem em tempo de execução (após passar no teste de sintaxe) são chamados de exceções ou erros lógicos .
Por exemplo, eles ocorrem quando tentamos abrir um arquivo (para leitura) que não existe (
FileNotFoundError
), tente dividir um número por zero (ZeroDivisionError
), ou tente 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 o motivo do erro.
Vejamos como o Python trata esses erros:
>>> 1 / 0
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
>>> open("imaginary.txt")
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'
Exceções incorporadas do Python
Operações ilegais podem gerar exceções. Existem muitas exceções internas no Python que são geradas quando ocorrem erros correspondentes. Podemos visualizar todas as exceções internas usando o
local()
interno funcionar da seguinte forma:
print(dir(locals()['__builtins__']))
locals()['__builtins__']
retornará um módulo de exceções, funções e atributos internos. dir
nos permite listar esses atributos como strings. Algumas das exceções internas comuns na programação Python, juntamente com o erro que as causam, estão listadas abaixo:
Exceção | Causa do erro |
---|---|
AssertionError | Gerado quando um assert falha na instrução. |
AttributeError | Gerado quando a atribuição ou referência de atributo falha. |
EOFError | Gerado quando o input() função atinge a condição de fim de arquivo. |
FloatingPointError | Gerado quando uma operação de ponto flutuante falha. |
GeneratorExit | Aumentar quando o close() de um gerador método é 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 em um dicionário. |
KeyboardInterrupt | Gerado quando o usuário pressiona a tecla de interrupção (Ctrl+C ou 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 um 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 coletado de lixo. |
RuntimeError | Gerado quando um erro não se enquadra em nenhuma outra categoria. |
StopIteration | Aumentado por 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á recuo incorreto. |
TabError | Gerado quando o recuo consiste em tabulações e espaços inconsistentes. |
SystemError | Gerado quando o intérprete detecta um erro interno. |
SystemExit | Aumentado 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 ocorre um erro relacionado ao Unicode durante a codificação. |
UnicodeDecodeError | Gerado quando ocorre um erro relacionado ao Unicode durante a decodificação. |
UnicodeTranslateError | Gerado quando ocorre um erro relacionado ao Unicode durante a tradução. |
ValueError | Gerado quando uma função obtém um argumento de tipo correto, mas valor impróprio. |
ZeroDivisionError | Gerado quando o segundo operando da divisão ou operação do 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 internas e definidas pelo usuário em Python usando
try
, except
e finally
declarações. Para saber mais sobre eles, visite Python try, except e finally. python
- Palavras-chave e identificadores do Python
- Declaração Python, Recuo e Comentários
- Variáveis, constantes e literais do Python
- Conversão de tipo Python e conversão de tipo
- Entrada, Saída e Importação do Python
- Variáveis globais, locais e não locais do Python
- Números Python, Conversão de Tipos e Matemática
- Gerenciamento de diretórios e arquivos Python
- Exceções personalizadas do Python
- Como obter data e hora atuais em Python?