Python - Usando inspect para identificar a linha com erro, ou que está sendo executada
Python - Usando inspect | ||
Canal Qb |
Você possui um Script de 1000 linhas, e precisa saber em qual linha está no momento.
Use o inspect, veja o exemplo abaixo:
import inspectdef mostrar_linha_atual():frame = inspect.currentframe()lineno = frame.f_linenoprint("Executando a linha {}".format(lineno))mostrar_linha_atual()# código do script aquimostrar_linha_atual()
Agora se você deseja que a linha só apresente quando um erro surgir, use com try-except:
import inspectdef minha_funcao():# linha com erroprint(variavel_inexistente)try:minha_funcao()except Exception as e:_, _, tb = sys.exc_info()linha = tb.tb_linenoprint(f"Ocorreu um erro na linha {linha}: {e}")
Neste exemplo, a função minha_funcao contém uma linha que tenta imprimir uma variável que não existe, o que gera uma exceção NameError. Em seguida, usamos uma cláusula try/except para capturar a exceção e exibir informações sobre ela.
Dentro da cláusula except, usamos a função sys.exc_info() para obter informações sobre a exceção que foi capturada. O terceiro item retornado por essa função é o objeto traceback, que contém informações sobre o rastreamento da pilha no momento em que a exceção ocorreu. Em seguida, usamos a função tb_lineno do objeto traceback para obter o número da linha onde o erro ocorreu. Finalmente, usamos a função print para exibir a mensagem "Ocorreu um erro na linha X: Y", onde X é o número da linha e Y é a descrição da exceção.
Este é apenas um exemplo simples de como você pode usar o módulo inspect para obter informações úteis sobre erros em suas funções. Lembre-se de que, em situações de produção, é importante tratar adequadamente os erros em suas funções e não exibir informações sensíveis ou detalhes internos do seu código para o usuário final.
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.