我在代码中的异常中构建了一些错误对话框。一切正常,除了程序在异常后继续执行代码。所以我内置了sys.exit()
:
try:
hdf = pd.HDFStore(filepath_hdf)
except:
QMessageBox.about(self, 'Error!','Filepath can't be read')
sys.exit()
不幸的是,这会关闭整个应用程序。当引发异常时,如何“重启”应用程序?那样,我的意思是如何回到应用程序的起点?
答案 0 :(得分:2)
这是else
语句的try/except
子句用于:
try:
hdf = pd.HDFStore(filepath_hdf)
except:
QMessageBox.warning(self, 'Error', 'Filepath cannot be read')
else:
# do normal stuff here...
如果发生错误,则不需要重新启动整个应用程序,除非错误确实是致命的(这意味着它几乎不可能继续运行,因此需要立即关闭)。异常处理的重点是能够从非致命错误中正常恢复 。
没有通用的方法将应用程序返回到其启动状态。每个应用程序都是不同的,因此您需要编写自己的“重置”方法,清除当前状态并在适当的时候重新初始化某些gui元素。这种“重置”方法很可能看起来很像你已经使用的一些setup / init代码。因此,重构应该是将代码转换为在应用程序启动时调用的单独方法,然后在需要重置时进行重构。