gpt4 book ai didi

Python异常处理——行号

转载 作者:IT老高 更新时间:2023-10-28 20:34:59 28 4
gpt4 key购买 nike

我正在使用 python 来评估一些测量数据。由于许多可能的结果,很难处理或可能的组合。有时在评估过程中会发生错误。这通常是索引错误,因为我超出了测量数据的范围。

很难找出问题发生在代码中的哪个位置。如果我知道在哪一行引发了错误,那将有很大帮助。如果我使用以下代码:

try:
result = evaluateData(data)
except Exception, err:
print ("Error: %s.\n" % str(err))

不幸的是,这只告诉我存在索引错误。我想了解有关异常的更多详细信息(代码行、变量等)以了解发生了什么。有可能吗?

谢谢。

最佳答案

解决方法、打印文件名、行号、行本身和异常描述:

import linecache
import sys

def PrintException():
exc_type, exc_obj, tb = sys.exc_info()
f = tb.tb_frame
lineno = tb.tb_lineno
filename = f.f_code.co_filename
linecache.checkcache(filename)
line = linecache.getline(filename, lineno, f.f_globals)
print 'EXCEPTION IN ({}, LINE {} "{}"): {}'.format(filename, lineno, line.strip(), exc_obj)


try:
print 1/0
except:
PrintException()

输出:

EXCEPTION IN (D:/Projects/delme3.py, LINE 15 "print 1/0"): integer division or modulo by zero

关于Python异常处理——行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519177/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com