Erros Python e exceções integradas

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:

  1. Erros de sintaxe
  2. 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.

Artigos interessantes...