catch every exceptions when trying to load a module

This commit is contained in:
Romain Bignon 2011-03-01 11:09:31 +01:00
commit fefcf65b8f

View file

@ -104,12 +104,12 @@ class ModulesLoader(object):
self.logger = getLogger('modules') self.logger = getLogger('modules')
def get_or_load_module(self, module_name): def get_or_load_module(self, module_name):
"""
Can raise a ModuleLoadError exception.
"""
if module_name not in self.loaded: if module_name not in self.loaded:
self.load_module(module_name) self.load_module(module_name)
if module_name in self.loaded: return self.loaded[module_name]
return self.loaded[module_name]
else:
return None
def iter_existing_module_names(self): def iter_existing_module_names(self):
try: try:
@ -134,7 +134,7 @@ class ModulesLoader(object):
try: try:
package_name = 'weboob.backends.%s' % module_name package_name = 'weboob.backends.%s' % module_name
module = Module(__import__(package_name, fromlist=[str(package_name)])) module = Module(__import__(package_name, fromlist=[str(package_name)]))
except ImportError, e: except Exception, e:
if self.logger.level == logging.DEBUG: if self.logger.level == logging.DEBUG:
self.logger.exception(e) self.logger.exception(e)
raise ModuleLoadError(module_name, e) raise ModuleLoadError(module_name, e)