Python 引发异常后如何重新启动PyQt应用程序

Python 引发异常后如何重新启动PyQt应用程序,python,exception-handling,pyqt4,application-restart,Python,Exception Handling,Pyqt4,Application Restart,我在代码中的异常中构建了一些错误对话框。除了程序在异常发生后继续执行代码外,所有操作都正常。所以我内置了sys.exit(): 不幸的是,这会关闭整个应用程序。当引发异常时,如何“重新启动”应用程序?我的意思是,如何返回到应用程序的起点?这就是try/except语句的else子句的目的: try: hdf = pd.HDFStore(filepath_hdf) except: QMessageBox.warning(self, 'Error', 'Filepath cannot

我在代码中的异常中构建了一些错误对话框。除了程序在异常发生后继续执行代码外,所有操作都正常。所以我内置了
sys.exit()


不幸的是,这会关闭整个应用程序。当引发异常时,如何“重新启动”应用程序?我的意思是,如何返回到应用程序的起点?

这就是
try/except
语句的
else
子句的目的:

try:
    hdf = pd.HDFStore(filepath_hdf)
except:
    QMessageBox.warning(self, 'Error', 'Filepath cannot be read')
else:
    # do normal stuff here...
如果发生错误,应该不需要重新启动整个应用程序,除非错误确实是致命的(这意味着不可能继续运行,因此需要立即关闭)。异常处理的全部要点是能够从非致命错误中优雅地恢复


没有通用的方法将应用程序返回到其启动状态。每个应用程序都是不同的,因此您需要编写自己的“重置”方法来清除当前状态,并在适当的情况下重新初始化某些gui元素。这个“重置”方法很可能看起来很像您已经在使用的一些setup/init代码。因此,将代码重构成一个单独的方法应该很重要,该方法将在应用程序启动时调用,然后在需要重置时调用。

这就是
try/except
语句的
else
子句的目的:

try:
    hdf = pd.HDFStore(filepath_hdf)
except:
    QMessageBox.warning(self, 'Error', 'Filepath cannot be read')
else:
    # do normal stuff here...
如果发生错误,应该不需要重新启动整个应用程序,除非错误确实是致命的(这意味着不可能继续运行,因此需要立即关闭)。异常处理的全部要点是能够从非致命错误中优雅地恢复

没有通用的方法将应用程序返回到其启动状态。每个应用程序都是不同的,因此您需要编写自己的“重置”方法来清除当前状态,并在适当的情况下重新初始化某些gui元素。这个“重置”方法很可能看起来很像您已经在使用的一些setup/init代码。因此,将代码重构成一个单独的方法应该很重要,该方法将在应用程序启动时调用,然后在需要重置时调用