use try/except when unloading modules too.
authorCampbell Barton <ideasman42@gmail.com>
Mon, 2 Aug 2010 14:25:23 +0000 (14:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 2 Aug 2010 14:25:23 +0000 (14:25 +0000)
release/scripts/modules/bpy_types.py

index 31acb3d7223533abc8db0d1d93eab60c4b6b68f1..db89983744e1ead984d47f46ba9b7bb14c7466b8 100644 (file)
@@ -553,14 +553,24 @@ _register_immediate = True
 
 def _unload_module(module, free=True):
     for t in TypeMap.get(module, ()):
-        bpy_types.unregister(t)
+        try:
+            bpy_types.unregister(t)
+        except:
+            import traceback
+            print("bpy.utils._unload_module(): Module '%s' failed to unregister class '%s.%s'" % (module, t.__module__, t.__name__))
+            traceback.print_exc()
 
     if free == True and module in TypeMap:
         del TypeMap[module]
 
 
     for t in PropertiesMap.get(module, ()):
-        bpy_types.unregister(t)
+        try:
+            bpy_types.unregister(t)
+        except:
+            import traceback
+            print("bpy.utils._unload_module(): Module '%s' failed to unregister class '%s.%s'" % (module, t.__module__, t.__name__))
+            traceback.print_exc()
 
     if free == True and module in PropertiesMap:
         del PropertiesMap[module]
@@ -571,7 +581,7 @@ def _load_module(module, force=False):
             bpy_types.register(t)
         except:
             import traceback
-            print("bpy.utils._load_module(): Module '%s' failed to register calss '%s.%s'" % (module, t.__module__, t.__name__))
+            print("bpy.utils._load_module(): Module '%s' failed to register class '%s.%s'" % (module, t.__module__, t.__name__))
             traceback.print_exc()
 
 _bpy._load_module = _load_module