0Pricing
Python Academy · Aula

Entendendo as exceções

Aprenda o que são exceções e como o Python as gera.

Entendendo as exceções é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Introdução

Exceções são o mecanismo do Python para sinalizar e tratar erros durante a execução.

O que é uma exceção?

Uma exceção é um evento que interrompe o fluxo normal do programa. O Python gera exceções quando ocorrem erros — por exemplo, ao dividir por zero.
# 1 / 0  # raises ZeroDivisionError
print('exceptions demo')

Hierarquia de exceções

Todas as exceções herdam de BaseException. A maioria das exceções voltadas ao usuário herda de Exception. Tipos específicos incluem ValueError, TypeError, KeyError e outros.
print(issubclass(ValueError, Exception))
print(issubclass(Exception, BaseException))

Exceções integradas comuns

TypeError: tipo incorreto. ValueError: tipo correto, valor incorreto. KeyError: chave ausente no dicionário. IndexError: índice da lista fora do intervalo. AttributeError: esse atributo não existe.
# Examples:
# int('abc')       -> ValueError
# d['missing']     -> KeyError
# [1,2][9]         -> IndexError
print('common exceptions')

O rastreamento de execução

Quando uma exceção não é tratada, o Python imprime um rastreamento de execução: a pilha de chamadas, da base (a chamada mais recente) ao topo. Aprenda a interpretá-lo.
def f(): return 1/0
# f()  # shows traceback
print('traceback demo')

Objeto de exceção

Cada exceção contém uma mensagem. str(e) ou e.args fornece a descrição. Acesse-a dentro de except desta forma: except ValueError as e.
try:
    int('abc')
except ValueError as e:
    print(type(e).__name__, e)

Capturando vários tipos

except (TypeError, ValueError): captura qualquer um dos dois tipos em uma única cláusula.
def parse(x):
    try:
        return int(x)
    except (TypeError, ValueError):
        return None
print(parse('abc'), parse(None))

O grupo de exceções (3.11+)

O Python 3.11 adiciona ExceptionGroup para várias exceções simultâneas, tratadas com a sintaxe except*.
# Python 3.11+:
# try: ...
# except* ValueError as eg:
#     print(eg.exceptions)
print('exception group demo')

Avisos e exceções

import warnings; warnings.warn('msg') emite um aviso sem gerar uma exceção. Use-o para descontinuações e erros não críticos.
import warnings
warnings.warn('This is deprecated', DeprecationWarning)
print('warning issued')

sys.exc_info()

Dentro de um bloco except, sys.exc_info() retorna (type, value, traceback) — é útil para registrar todos os detalhes da exceção.
import sys
try:
    1/0
except:
    exc_type, exc_val, _ = sys.exc_info()
    print(exc_type, exc_val)

Encadeamento de exceções

raise NewError('msg') from original_exc encadeia as exceções. O atributo __cause__ cria a ligação entre elas.
try:
    int('abc')
except ValueError as e:
    raise RuntimeError('parse failed') from e

Verificação rápida

Qual exceção é gerada quando você acessa um dicionário usando uma chave que não existe?

Recapitulação

As exceções herdam de BaseException. Leia os rastreamentos de execução de baixo para cima. Capture-as com except as e. Tipos comuns: ValueError, TypeError, KeyError, IndexError e AttributeError.

Continue avançando

Excelente trabalho! Passe à próxima lição para continuar avançando.

Perguntas Frequentes

A aula “Entendendo as exceções” é grátis?

Sim — o texto completo de “Entendendo as exceções” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Entendendo as exceções”?

Aprenda o que são exceções e como o Python as gera. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Entendendo as exceções”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Entendendo as exceções
  2. try / except / else / finally
  3. Geração e repropagação de exceções
  4. Classes de exceção personalizadas
← Voltar para Python Academy