2013-10-10 71 views
1

我是新來的Python,請原諒我的基本問題。 當我得到一個錯誤,我通常可以找出哪一行導致錯誤,但有時從錯誤信息本身我不能決定哪一行負責。因此,我在行之間添加了一些消息來跟蹤問題。有沒有更有效的解決方案呢? 我正在運行我的代碼形式的ArcGIS工具箱腳本,我不確定是否可以從那裏跟蹤錯誤。如何知道哪一行在Python中給出錯誤?

+3

但是在Python回溯包括故障線路的行號。 – fjarri

+0

讓我修改我的問題。 – Arash

+0

打印語句是查找代碼執行過程中發生的事情的好方法。如果您正在使用Windows/Idle,在異常停止執行後,從外殼窗口的Debug菜單中打開Stack Viewer。 – wwii

回答

0

我總是使用print語句(好的,在Py3中的函數)。這是最標準的方法。用它來跟蹤你現在在你的程序中的位置,以及你在做什麼。但是,如果您的應用程序處理大量數據,或者它是一個大型應用程序,則print語句可能不夠。有時,您需要tryexcept語句,只是爲了縮小搜索錯誤。

有關錯誤處理的更多信息? Here

This也可能有用。

+0

@alKid:非常感謝! – Arash

+0

不客氣! – aIKid

0

如果youre試圖做到這一點有例外錯誤做到這一點:

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) 

否則只讀過回溯

+0

非常感謝,這看起來非常有前途! – Arash

相關問題