Todo desenvolvedor já sentiu um arrepio ao ver um programa recém-escrito apresentar uma mensagem de erro incompreensível, certo? Quando isso acontece depois de horas de trabalho e justamente quando você pensava que estava tudo perfeito, a vontade é de jogar o computador pela janela e o trabalho no lixo. Mas calma, não há motivo para desespero os tracebacks do Python estão aqui para te ajudar!
Quando você se deparar com uma mensagem de erro, é preciso apenas conhecer os mecanismos adequados para descobrir mais facilmente onde estão os problemas no seu código. Neste post, vamos te contar tudo sobre os tracebacks do Python, um mecanismo que te ajuda a encontrar, identificar e corrigir possíveis erros no seu código.
Vamos lá?
O que são os tracebacks do Python?
Os tracebacks do Python são relatórios contendo chamadas de funções feitas no seu código em um ponto específico. Eles têm por objetivo produzir uma chamada de erro. Quando você encontra uma exceção no seu programa, o Python vai imprimir o relatório atual para ajudá-lo a descobrir o que deu errado.
Os tracebacks do Python realizam um rastreamento da call stack a partir de um manipulador de exceções para baixo na cadeia de chamadas até o ponto onde a exceção foi gerada. Esta saída de traceback tem toda a informação que você precisa para diagnosticar o erro. A linha final da saída do traceback mostra que tipo de exceção foi criada, além de algumas informações relevantes sobre esta exceção.
As funções dos tracebacks do Python se encaixam em várias categorias comuns e você pode trabalhar também com a pilha de chamadas atual de um certo ponto de uma chamada mesmo sem o contexto de um erro, o que é útil para descobrir os caminhos que estão sendo seguidos em uma função.
Os tracebacks do Python possui três informações:
- sequência de chamadas de funções até o ponto onde o erro aconteceu;
- o número da linha de geração do erro;
- o tipo de erro, além de uma mensagem informativa sobre a exceção ocorrida.
Como ler os tracebacks do Python?
Como já falamos, os tracebacks do Python contêm muitas informações úteis quando você está tentando determinar o motivo de estar sendo gerada uma exceção no seu código. Aqui vamos te mostrar como entender algumas dessas informações.
Primeiro, é importante saber que você deve ler o seu traceback de baixo para cima já que a mensagem de erro aparece sempre na última linha e ela contém o nome da exceção gerada. Em seguida, normalmente na mesma linha, aparece a mensagem de erro que vem com informações úteis para entender o motivo do erro.
Logo acima, movendo-se de cima para baixo, temos as chamadas de função, da mais recente para a menos recente. Cada chamada é representada por duas linhas. A primeira linha de cada chamada contém o nome do arquivo, número da linha e nome do módulo, especificando onde você pode encontrar o código em questão. Na segunda linha você encontrará o código real executado.
Conheça alguns tracebacks do Python
Agora que você já sabe como ler tracebacks do Python, é muito importante conhecer alguns dos mais comuns e o que significam.
Para facilitar, preparamos uma lista para você:
- AttributeError
O AttributeError é gerado quando você tenta acessar um atributo em um objeto que não tem esse atributo definido. - ImportError
O ImportError é gerado quando algo dá errado com uma instrução de importação. Você receberá essa exceção, ou sua subclasse ModuleNotFoundError, se o módulo que você está tentando importar não puder ser encontrado ou se você tentar importar algo que não existe no módulo. - IndexError
O IndexError é gerado quando você tenta recuperar um índice de uma sequência e o índice não é encontrado na sequência. - KeyError
O KeyError é parecido com o IndexError, mas é gerado quando você tenta acessar uma chave que não está no mapeamento, geralmente um dict. - NameError
O NameError é gerado quando você faz referência a uma variável, módulo, classe, função ou algum outro nome que não foi definido em seu código. - SyntaxError
O SyntaxError é gerado quando você um erro de sintaxe no código. - TypeError
O TypeError é gerado quando você tenta fazer algo com um objeto que não pode fazer essa coisa, como tentar adicionar uma string a um inteiro ou chamar len () em um objeto onde seu comprimento não está definido. - ValueError
O ValueError é gerado quando o valor do objeto não está correto. Você pode pensar nisso como um IndexError que é gerado porque o valor do índice não está no intervalo da sequência, apenas ValueError é para um caso mais genérico.
Dominando o Python
À primeira vista, os tracebacks do Python podem parecer intimidante e incompreensível, mas eles são uma ótima ferramenta para descobrir o que há de errado com o seu código e ter uma melhor compreensão do processo como um todo. Uma das muitas vantagens de trabalhar com o Python, certo?
Quer dominar completamente o Python? Nada melhor do que fazer um bom curso, certo?
Aqui na ByLearner nós temos o melhor curso do mercado, Python completo – de Júnior a Sênior. Os nossos alunos contam com um material didático especial e exclusivo, além de uma equipe pedagógica sempre aberta ao diálogo e disposta a trocar conhecimentos para além das aulas.
Em suma, nós temos mais de 27.000 alunos satisfeitos e uma grande experiência de ensino.
Como resultado, essa experiência que também nos ajudou a melhorar e conquistar cada vez mais a excelência de qualidade que você merece.
É importante lembrar que, ao final do nosso curso, nossos alunos recebem um certificado válido e amplamente aceito pelas empresas de tecnologia. Ele não só atesta que você possui conhecimentos em Python, como também já está pronto para aplicá-los em diversas áreas.
Então, que tal já ter um gostinho do estilo ByLearner de ensino e baixar um ebook completo e totalmente grátis?
Com o nosso Boas Práticas com Python você vai elevar o nível do seu código:
Boas Práticas com Python
Baixe gratuitamente nosso e-book completo no link abaixo
Gosto do nosso texto? Tem alguma sugestão para os próximos? Não esqueça de deixar um comentário e nos contar tudo!
Ah! Nós estamos em todas as redes sociais, siga a gente e assine a nossa newsletter para não perder nenhum conteúdo inédito!
Newsletter
Se inscreva na nossa Newsletter para receber as principais novidades da ByLearn