Introdução a erros

Python intermediário para desenvolvedores

Jasmin Ludolf

Senior Data Science Content Developer

O que é um erro?

  • Código que viola uma regra
  • Erro = Exceção
  • Faz nosso programa encerrar!

Hierarquia de algumas exceções do Python

1 https://docs.python.org/3/library/exceptions.html#exception-hierarchy
Python intermediário para desenvolvedores

TypeError

  • Tipo de dado incompatível
"Hello" + 5

Saída de TypeError mostrando que strings e inteiros não podem ser combinados

Python intermediário para desenvolvedores

ValueError

float("Hello")

Saída de ValueError confirmando que a string 'Hello' não pode ser convertida para float

  • O valor não está em um intervalo aceitável
float("2")

Saída mostrando o resultado 2.0 sem erro

Python intermediário para desenvolvedores

Tracebacks

Mensagem de traceback

Python intermediário para desenvolvedores

Tracebacks

Mensagem de traceback destacando o tipo de erro

Python intermediário para desenvolvedores

Tracebacks

Mensagem de traceback destacando o código que causou o erro

Python intermediário para desenvolvedores

Código em pacotes

  • Pacotes contêm código de outras pessoas, ex.: funções personalizadas
  • Chamado de código-fonte
  • pip install <package> baixa o código-fonte pro nosso ambiente local
  • A função pd.read_csv() do pandas executa esse código por trás dos panos
Python intermediário para desenvolvedores

Tracebacks de pacotes

# Import pandas package
import pandas as pd

# Create pandas DataFrame                 
products = pd.DataFrame({"ID": "ABC1",
                         "price": 29.99})

# Try to access the non-existent "tag" column
products["tag"]
Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback ao tentar filtrar um DataFrame do pandas por uma coluna inexistente

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback mostrando o arquivo que gerou o erro na execução e o tipo KeyError

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback com a linha 3803 destacada

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback com base.py destacado

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback com KeyError destacado

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback mostrando a linha no nosso código que causou o erro

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback mostrando código que retorna um erro de propósito

Python intermediário para desenvolvedores

Tracebacks de pacotes

Traceback com Raised destacado

Python intermediário para desenvolvedores

Vamos praticar!

Python intermediário para desenvolvedores

Preparing Video For Download...