2015-05-29 78 views
1

我可能完全忽略了一些東西,但有沒有辦法在使用faulthandler程序包時顯示自定義錯誤窗口。Python錯誤處理程序顯示錯誤窗口

目前我只是寫信來使用日誌文件:

faulthandler.enabled(file=open("crash.log", "w")) 

但是這將是非常好的能夠表現出一定的窗口與一個錯誤信息給用戶。

關於如何做到這一點的任何想法?

回答

1

有沒有辦法改變的faulthandler行爲根據documetnation

做多日誌錯誤以外的一些不同的類文件對象但是你可以改變sys.excepthook並使用PyQt4.QtGui.QMessageBox

例如:

#!/usr/bin/env python 

import sys 


from PyQt4.QtGui import QMainWindow, QMessageBox 


class App(QMainWindow): 

    def __init__(self, parent=None): 
     QMainWindow.__init__(self, parent) 

     sys.excepthook = self._displayError 

    def _error(self, etype, evalue, etraceback): 
     QMessageBox.critical(
      self, 
      "ERROR", 
      "An unexpected error occurred: {0:s}".format(evalue) 
     )