2013-05-02 32 views
0

我在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的工作實際的做法。

+0

你想要發生什麼? – unutbu 2013-05-02 11:52:04

+0

按下按鈕時,c1.py中沒有追蹤回溯。它根本不會去Exception。 – Rao 2013-05-02 12:04:14

回答

0

當你點擊按鈕時,Python早已經過去了try..except圍繞着self.c3_Inst = C3(1,0)。如果您想要在c1.py中發現異常,則需要將try..except大約在app.exec_()左右。

+0

它不工作。即使我在app.exec_()附近保留'try..except',它也不會進入'except'塊。 – Rao 2013-05-02 12:16:23

相關問題