我在python中編寫代碼並添加了Trace-backs以進行錯誤處理。如何提高python中主類中其他類的追蹤
爲了更好的理解,可以說我有3個班。
C1 =主類
回溯=其他類
我的主要類將導入其他類(回溯)和作爲編碼創建這些類的實例和所得。對於錯誤處理,我在所有3個類中導入了traceback
模塊,並在try: except:
內更新了我的代碼。一切工作正常。
現在我有了一個想法,只保留在主類追蹤。因爲其他類是在主類中導入的。
我C1.py看起來像下面
import traceback
from TraceBack import C3
class tracebackTest():
def __init__(self):
try:
self.c3_Inst = C3(1,0)
self.c3_Inst.sub()
except Exception as ex:
TraceBk = traceback.format_exc()
print 'Error Raised from Trace Back\n%s' % TraceBk
if __name__ == '__main__':
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
win = tracebackTest()
sys.exit(app.exec_())
我TraceBack.py看起來像下面
from PyQt4 import QtGui
class C3(QtGui.QMainWindow):
def __init__(self,x,y):
super(C3,self).__init__()
self.a = x
self.b = y
button = QtGui.QPushButton('Test',self)
button.clicked.connect(self.sub)
self.show()
def sub(self):
result = self.a/self.b
print 'result %s' % result
在C1.py
創建實例我馬上打電話self.c3_Inst.sub()
後,將在下面給從例外追溯。
Error Raised from Trace Back
Traceback (most recent call last):
File "D:\PBL_Data\Development\Showtime_Python\RnD\TraceBack_1a.py", line 25, in __init__
self.c3_Inst.sub()
File "D:\PBL_Data\Development\Showtime_Python\RnD\TraceBack.py", line 37, in sub
result = self.a/self.b
ZeroDivisionError: integer division or modulo by zero
但是當我點擊窗口中的按鈕。我得到下面的錯誤,這是不從異常募集C1.py
Traceback (most recent call last):
File "D:\PBL_Data\Development\Showtime_Python\RnD\TraceBack.py", line 37, in sub
result = self.a/self.b
ZeroDivisionError: integer division or modulo by zero
任何一個可以告訴我要引用到其連接到窗口小部件的信號PyQt的工作實際的做法。
你想要發生什麼? – unutbu 2013-05-02 11:52:04
按下按鈕時,c1.py中沒有追蹤回溯。它根本不會去Exception。 – Rao 2013-05-02 12:04:14