From 7b112f4f1d09be0c418fa3e9252b5dbbf6b53854 Mon Sep 17 00:00:00 2001 From: duplo Date: Wed, 4 Feb 2009 10:06:36 +0000 Subject: [PATCH] Add gracefully exception handling git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2257 38d2e660-2303-0410-9eaa-f027e97ec537 --- wizard/BModulePage.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index 86095d90..f3edd0e6 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -37,18 +37,32 @@ class BModulePage(BWizardPage): self.connect(self._buttonGroup, SIGNAL("buttonClicked(int)"), self._moduleSelectionChanged) def _loadModuleData(self): - modules = bertos_utils.loadModuleInfosDict(self._projectInfoRetrieve("SOURCES_PATH")) - lists = bertos_utils.loadDefineListsDict(self._projectInfoRetrieve("SOURCES_PATH")) + try: + modules = bertos_utils.loadModuleInfosDict(self._projectInfoRetrieve("SOURCES_PATH")) + except SyntaxError: + self._exceptionOccurred(self.tr("Wrong syntax in module definitions")) + return + try: + lists = bertos_utils.loadDefineListsDict(self._projectInfoRetrieve("SOURCES_PATH")) + except SyntaxError: + self._exceptionOccurred(self.tr("Wrong syntax in enum definitions")) + return configurations = {} for module, informations in modules.items(): - configurations[informations["configuration"]] = bertos_utils.loadConfigurationInfos(self._projectInfoRetrieve("SOURCES_PATH") + - "/" + informations["configuration"]) + try: + configurations[informations["configuration"]] = bertos_utils.loadConfigurationInfos(self._projectInfoRetrieve("SOURCES_PATH") + + "/" + informations["configuration"]) + except SyntaxError: + self._exceptionOccurred(self.tr("Wrong syntax in %1 configuration file").arg(informations["configuration"])) + return self._projectInfoStore("MODULES", modules) self._projectInfoStore("LISTS", lists) self._projectInfoStore("CONFIGURATIONS", configurations) def _fillModuleTable(self): modules = self._projectInfoRetrieve("MODULES") + if modules is None: + return self.pageContent.moduleTable.setRowCount(len(modules)) for index, module in enumerate(modules): self.pageContent.moduleTable.setItem(index, 1, QTableWidgetItem(module)) -- 2.25.1