如何知道哪一行在python中出错?

时间:2013-10-10 00:23:43

标签: python error-handling

我是Python的新手,请原谅我的基本问题。 当我收到错误时,我通常可以找出导致错误的行,但有时从错误消息本身我无法确定哪一行负责。所以我在行之间添加一些消息来跟踪问题。有没有更有效的解决方案呢? 我从ArcGIS工具箱脚本运行我的代码,我不确定是否可以从那里追踪错误。

2 个答案:

答案 0 :(得分:0)

我总是使用print语句(好吧,Py3中的函数)。这是最标准的方式。只需用它来跟踪你现在在程序中的位置,以及你在做什么。

但是,如果您的应用程序处理大型数据,或者它是一个大型应用程序,print语句可能还不够。有时,您需要tryexcept语句,只是为了缩小对错误的搜索范围。

有关错误处理的更多信息? Here

This也可能有用。

答案 1 :(得分:0)

如果您尝试使用例外错误执行此操作,请执行以下操作:

import traceback
import sys

try:
    raise Exception("foo")
except:
    for frame in traceback.extract_tb(sys.exc_info()[2]):
        fname,lineno,fn,text = frame
        print "Error in %s on line %d" % (fname, lineno)

否则只需阅读追溯