Todo programador encontra erros, tanto os que estão começando, quanto os que programam há anos. Encontrar erros e exceções às vezes pode ser muito frustrante e pode fazer com que a codificação pareça um empreendimento sem esperança. No entanto, entender quais são os diferentes tipos de erros e quando é provável que você os encontre pode ajudar muito. Depois de saber por que você recebe certos tipos de erros, eles se tornam muito mais fáceis de corrigir.
Erros em Python têm uma forma muito específica, chamada de traceback. Vamos examinar um:
# Este código tem um erro intencional. Você pode digitar diretamente ou
# use-o como referência para entender a mensagem de erro abaixo.
def sorvete_favorito():
sorvete = [
'chocolate',
'baunilha',
'morango'
]
print(sorvete[3])
sorvete_favorito()
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "<string>", line 9, in sorvete_favorito
IndexError: list index out of range
Este traceback específico tem dois níveis. Você pode determinar o número de níveis procurando o número de setas no lado esquerdo. Nesse caso:
A primeira mostra o código da célula acima, com uma seta apontando para a Linha 11 (que é sorvete_favorito()). A segunda mostra algum código na função sorvete_favorito, com uma seta apontando para a Linha 9 (que é print(sorvete[3])).
O último nível é o local real onde ocorreu o erro. Os outros níveis mostram qual função o programa executou para chegar ao próximo nível abaixo. Então, neste caso, o programa primeiro executou uma chamada de função para a função sorvete_favorito. Dentro desta função, o programa encontrou um erro na Linha 6, ao tentar executar o código print(sorvete[3]).
traceback Longos
Às vezes, você pode ver um traceback muito longo - às vezes pode até ter 20 níveis de profundidade! Isso pode fazer parecer que algo horrível aconteceu, mas o comprimento da mensagem de erro não reflete a gravidade, em vez disso, indica que seu programa chamou muitas funções antes de encontrar o erro. Na maioria das vezes, o local real onde ocorreu o erro está no nível mais baixo, para que você possa pular o rastreamento para baixo.
Então, qual erro o programa realmente encontrou? Na última linha do traceback, o Python nos informa a categoria ou tipo de erro (neste caso, é um IndexError) e uma mensagem de erro mais detalhada (neste caso, diz “list index out of range”).
Se você encontrar um erro e não souber o que isso significa, ainda é importante ler o traceback com atenção. Dessa forma, se você corrigir o erro, mas encontrar um novo, poderá dizer que o erro foi alterado. Além disso, às vezes, saber onde ocorreu o erro é suficiente para corrigi-lo, mesmo que você não entenda completamente a mensagem.
Se você encontrar um erro que não reconhece, tente consultar a documentação oficial sobre erros. No entanto, observe que nem sempre você poderá encontrar o erro, pois é possível criar erros personalizados. Nesse caso, esperamos que a mensagem de erro personalizada seja informativa o suficiente para ajudá-lo a descobrir o que deu errado.
0 Comentários