Tamanho de fonte
Alto contraste
Altura de linha

Como Capturar Múltiplas Exceções em Python em Uma Linha

Avatar de Ana Maria Gomes Ana Maria Gomes
3 minutos de leitura 9 meses atrás

Ao escrever código em Python, tratar exceções é uma parte crítica para criar programas robustos e resistentes a erros. Às vezes, você pode se deparar com situações em que deseja realizar a mesma ação para diferentes tipos de exceções. Em vez de escrever vários blocos except, o Python permite capturar múltiplas exceções em uma única linha. Vamos explorar como fazer isso efetivamente.

Capturando Múltiplas Exceções com uma Tupla

O bloco try-except do Python é uma ferramenta poderosa para o tratamento de exceções. Se você deseja capturar múltiplas exceções e tratá-las da mesma maneira, você pode usar uma tupla para especificar as exceções que deseja capturar. Aqui está a sintaxe:

try:
    # Código que pode gerar uma exceção
except (TipoDeExcecao1, TipoDeExcecao2) as e:
    # Tratar a exceção

Os parênteses são necessários para criar uma tupla de tipos de exceção. A parte as e da sintaxe atribui a exceção capturada à variável e, que você pode então usar dentro do bloco except.

Exemplo de Captura de Múltiplas Exceções

Vamos olhar para um exemplo simples. Suponha que você tenha uma função que processa a entrada do usuário, mas você quer tratar ValueError e TypeError da mesma forma:

try:
    entrada_do_usuario = int(input("Digite um número: "))
    resultado = 10 / entrada_do_usuario
except (ValueError, TypeError) as erro:
    print("Por favor, digite um número válido.")

Neste exemplo, se o usuário digitar um valor não numérico, um ValueError será gerado, e se entrada_do_usuario for None ou não for um número, um TypeError será gerado. Ambas as exceções são capturadas pelo mesmo bloco except, e o usuário é solicitado a digitar um número válido.

Melhores Práticas e Compatibilidade

É importante notar que a sintaxe para capturar múltiplas exceções evoluiu ao longo do tempo. No Python 2, você pode ver a exceção atribuída com uma vírgula, assim:

try:
    # Algum código
except (TipoDeExcecao1, TipoDeExcecao2), e:
    # Tratar a exceção

No entanto, essa sintaxe está obsoleta e não funciona no Python 3. Para garantir que seu código seja compatível com o Python 3 e versões futuras, sempre use a palavra-chave as para atribuir a exceção capturada a uma variável.

Usando o Gerenciador de Contexto suppress

O Python 3.4 introduziu o gerenciador de contexto suppress do módulo contextlib, que permite ignorar exceções especificadas:

from contextlib import suppress

with suppress(ValueError, TypeError):
    entrada_do_usuario = int(input("Digite um número: "))
    resultado = 10 / entrada_do_usuario

Neste exemplo, se ocorrer um ValueError ou TypeError, ele será ignorado, e o programa continuará sem executar nenhum código de tratamento de exceção.

Resumo

Em resumo, para capturar múltiplas exceções em uma linha em Python, use uma tupla para especificar as exceções e a palavra-chave as para atribuir a exceção capturada a uma variável. Essa abordagem é limpa, concisa e compatível com as versões atuais e futuras do Python. Lembre-se de usar o gerenciador de contexto suppress se você quiser ignorar certas exceções sem escrever nenhum código de tratamento. Seguindo essas diretrizes, você pode escrever um tratamento de exceções mais eficiente e legível em seus programas Python.

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov