Add gracefully exception handling
authorduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 4 Feb 2009 10:06:36 +0000 (10:06 +0000)
committerduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 4 Feb 2009 10:06:36 +0000 (10:06 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2257 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/BModulePage.py

index 86095d9079aa03ce68e30b55eed5d7dcb1dc37ab..f3edd0e64be40c7a1f96a8a9cf3555157078c7bb 100644 (file)
@@ -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))