English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico do Python

Controle de Fluxo do Python

Função do Python

Tipos de Dados do Python

Operações de Arquivos do Python

Objetos e Classes do Python

Data e Hora do Python

Conhecimentos Avançados do Python

Manual de Referência do Python

Erros e Exceções Nativas do Python

O Python (interpretador) gera exceções quando encontra erros. Por exemplo: divisão por zero. Neste artigo, você aprenderá sobre diferentes maneiras de lidar com exceções integradas ao Python.

Quando escrevemos programas, frequentemente nos deparamos com erros.

Erros causados por não seguir a estrutura correta da linguagem (sintaxe) são chamados de erros de sintaxe ou erros de análise.

>>> if a < 3
  Arquivo "<input interativo>", linha 1
    if a < 3
           ^
SyntaxError: sintaxe inválida

Aqui podemos notar que falta um dois-pontos no comando if.

Erros também podem ocorrer durante a execução, esses são chamados de exceções. Por exemplo, quando tentamos abrir um arquivo que não existe (FileNotFoundError), dividir um número por zero (ZeroDivisionError), não encontrar o módulo que tentamos importar (ImportError) e outros, isso acontece.

Cada vez que ocorrer esse tipo de erro de tempo de execução, o Python criará um objeto de exceção. Se não for tratado corretamente, ele exibirá o rastreamento de erro para o erro e algumas informações detalhadas sobre a causa do erro.

>>> 1 / 0
Traceback (última chamada mais recente):
 Arquivo "<string>", linha 301, em runcode
 Arquivo "<input interativo>", linha 1, no módulo <module>.
ZeroDivisionError: divisão por zero
>>> open("imaginary.txt")
Traceback (última chamada mais recente):
 Arquivo "<string>", linha 301, em runcode
 Arquivo "<input interativo>", linha 1, no módulo <module>.
FileNotFoundError: [Errno 2Arquivo não encontrado ou diretório: 'imaginary.txt'

Exceções integradas do Python

Operações ilegais podem gerar exceções. Existem muitos erros integrados no Python, que são gerados quando ocorrem os erros correspondentes. Podemos usar a função integrada local() para ver todas as exceções integradas, conforme mostrado a seguir.

>>> locals()['__builtins__']

Isso nos retornará um dicionário de exceções, funções e atributos integrados.

A seguir está listado alguns dos erros comuns de exceções integradas do Python e os erros que causam essas exceções.

Exceções padrão integradas do Python
ExceçãoRazão do erro
AssertionErrorGerado quando uma declaração assert falha.
AttributeErrorGerado quando a atribuição ou referência de atributo falha.
EOFErrorGerado quando a função input() alcança a condição de fim de arquivo.
FloatingPointErrorGerado quando uma operação de ponto flutuante falha.
GeneratorExitGerado ao chamar o método close() em um gerador.
ImportErrorGerado quando não é possível encontrar o módulo importado.
IndexErrorGerado quando o índice da sequência está fora do escopo.
KeyErrorGerado quando não é possível encontrar uma chave no dicionário.
KeyboardInterruptQuando o usuário pressiona a tecla de interrupção (Ctrl + Gerado ao tentar aplicar c ou Delete.
MemoryErrorGerado ao operar com falta de memória.
NameErrorGerado quando não é possível encontrar uma variável em escopo local ou global.
NotImplementedErrorMétodo ainda não implementado.
OSErrorGerada quando uma operação de sistema causa um erro relacionado ao sistema
OverflowErrorGerada quando o resultado da operação aritmética é muito grande para ser representado
ReferenceErrorGerada ao acessar um objeto de coleta de lixo usando um proxy de referência fraca
RuntimeErrorGerada quando o erro não pertence a nenhuma outra categoria
StopIterationGerada pela função next(), para indicar que o iterador não tem mais itens a retornar
SyntaxErrorGerada pelo analisador quando há erro de sintaxe
IndentationErrorGerada quando o recuo é incorreto
TabErrorGerada quando o recuo é composto de tabs e espaços inconsistentes
SystemErrorGerada quando o interpretador detecta um erro interno
SystemExitGerada pela função sys.exit()
TypeErrorGerada quando uma função ou operação é aplicada a um objeto de tipo incorreto
UnboundLocalErrorGerada ao se referir a uma variável local em uma função ou método sem valor atribuído a ela
UnicodeErrorGerada ao ocorrer um erro de codificação ou decodificação relacionado a Unicode
UnicodeEncodeErrorGerada ao ocorrer um erro relacionado a Unicode durante a codificação
UnicodeDecodeErrorGerada ao ocorrer um erro relacionado a Unicode durante a decodificação
UnicodeTranslateErrorGerada ao ocorrer um erro relacionado a Unicode durante a tradução
ValueErrorGerada quando a função obtém o tipo correto mas o valor não é correto
ZeroDivisionErrorGerada quando o segundo operando da divisão ou do módulo é zero

Também podemos definir nossas próprias exceções no Python (se necessário). Acesse esta página para saber mais sobredas exceções definidas pelo usuárioMais informações. 

Podemos usar as instruções try, except e finallyTratar essas exceções integradas e definidas pelo usuário no Python.