PySide2 PyQt5 錯誤異常 調試漏洞 疑難雜癥 解決辦法匯總


一個應用程序能成形,是一些基本功能 + 無數次漏洞修復的成果。

這種無數次漏洞修復,最好采用 批處理式 IDE ,否則,一直停留在原型開發階段還不如沒有,那種生不如死的感覺,會讓您懷疑人生。

調試時,最好強製直接注釋掉無用代碼 (或可能齣錯的代碼段),測試時直接輸齣一些提示信息、生成本地文件或彈齣錯誤提示對話框。

    def variableTest(self, directory):
        print('One Check Point')
        #sender = sender()
        sender = self.sender()
        if directory:
            print('Two Check Point', directory)
            #self.signalTest.emit(text)
            self.signalTest.emit(directory)
					

print('One Check Point') 和 print('Two Check Point'),依次類推,用於標識先後順序。

不建議采用一般 IDE 帶的跳過代碼標記測試法,因為不太直觀 (還可能存在其它問題)。

由於標記間的原代碼仍正常展示,有沒有問題或錯誤值得懷疑。

以下基於實戰,列齣一些錯誤 異常示例代碼及解決辦法:

變量問題


以下是源代碼開發過程中,最常見的一種齣錯方式。

Python 解釋器解釋時可能不會輸齣錯誤提示而是直接崩潰,因為未導入變量 SIGNAL。

    def testTimer(self):
        if not hasattr(self, "testTimer"):
            from PySide2.QtCore import QTimer; self.testTimer = QTimer()
            self.connect(self.testTimer, SIGNAL("timeout()"), self.textThread)
        self.testTimer.start(5000)
					

正確代碼:

    def testTimer(self):
        if not hasattr(self, "testTimer"):
            from PySide2.QtCore import QTimer, SIGNAL; self.testTimer = QTimer()
            self.connect(self.testTimer, SIGNAL("timeout()"), self.textThread)
        self.testTimer.start(5000)
					

另請參閱:

程序漏洞和使用場景 設備硬件 綫程進程的關係 産生原因

Python警告異常 錯誤漏洞 疑難雜癥 解決辦法

版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。