Guia completo try except finally: Tratamento de erros em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Tratamento de erros em Python com try, except, finally

Lidar com erros é parte essencial do desenvolvimento de software de qualidade e confiável. Mesmo os desenvolvedores mais experientes não estão imunes a erros durante a execução do programa. Para evitar que essas situações causem a falha total da aplicação, o Python oferece ferramentas poderosas para tratamento de exceções.

Neste guia, você aprenderá a usar corretamente as construções try, except e finally para criar código resistente a erros.

Fundamentos do tratamento de exceções em Python

O que é tratamento de erros

O tratamento de erros em Python permite capturar exceções que ocorrem durante a execução do programa. Em vez de encerrar a aplicação abruptamente, o sistema executa ações específicas para lidar corretamente com a situação problemática.

Elementos-chave do sistema de tratamento de exceções

O sistema de tratamento de erros em Python é baseado em três blocos principais:

  • try — bloco de código onde uma exceção pode ocorrer
  • except — bloco para tratar um tipo específico de erro
  • finally — bloco de código executado independentemente do resultado

Estrutura básica da construção try-except-finally

Sintaxe da construção principal

try:
    # Código que pode gerar uma exceção
    pass
except SpecificError:
    # Código para tratar o erro específico
    pass
finally:
    # Código executado em qualquer caso
    pass

Aplicação prática da estrutura básica

try:
    user_input = input("Digite um número: ")
    number = int(user_input)
    print(f"Você digitou o número: {number}")
except ValueError:
    print("Erro: é necessário digitar um número válido")
finally:
    print("Operação finalizada")

Com uma entrada válida, o programa exibirá o número digitado. Em caso de entrada inválida, uma mensagem de erro será mostrada. O bloco finally será executado em qualquer cenário.

Tratamento de diferentes tipos de exceções

Tratamento múltiplo de erros

O Python permite tratar diferentes tipos de exceções usando vários blocos except:

try:
    dividend = 10
    divisor = 0
    result = dividend / divisor
except ZeroDivisionError:
    print("Operação de divisão por zero não é permitida")
except ValueError:
    print("Formato de dados inválido detectado")
except TypeError:
    print("Tipos de dados incompatíveis para a operação")
finally:
    print("Processamento da operação matemática finalizado")

Tratamento de erros sem o bloco finally

O bloco finally não é obrigatório. Sem ele, o programa trata a exceção e continua a execução:

try:
    data_list = [1, 2, 3, 4, 5]
    element = data_list[10]  # Tentativa de acessar índice inexistente
except IndexError:
    print("Tentativa de acessar um índice fora dos limites da lista")

Obtendo informações detalhadas sobre exceções

Usando a palavra-chave as

Para obter informações detalhadas sobre a exceção, use a construção com a palavra-chave as:

try:
    calculation = 15 / 0
except ZeroDivisionError as error:
    print(f"Erro detectado: {error}")
    print(f"Tipo do erro: {type(error).__name__}")

Resultado da execução:

Erro detectado: division by zero
Tipo do erro: ZeroDivisionError

Tratamento genérico de todas as exceções

Em alguns casos, é necessário capturar qualquer exceção possível:

try:
    potentially_risky_operation()
except Exception as error:
    print(f"Ocorreu um erro: {error}")                

Blogs

Book Recommendations