我在 python 中编码并添加了 Trace-backs 以进行错误处理。
为了更好地理解,假设我有 3 个课程。
C1 = 主类
TraceBack = 其他类
我的 Main 类将导入其他类 (TraceBack) 并创建这些类的实例并按编码进行。对于错误处理,我在所有 3 个类中导入traceback
了模块,并在try: except:
Everything 中更新了我的代码,一切正常。
现在我有了一个想法,只在主类中保留回溯。由于其他类是在主类中导入的。
我的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 中进行引用的实际方法。