diff --git a/src/common/ged.py b/src/common/ged.py index 15586d987d6ddf7411848758329c6801ceabe376..72920f05e6931867be27af3bcc4234cef1fa7162 100644 --- a/src/common/ged.py +++ b/src/common/ged.py @@ -25,6 +25,8 @@ Global Events Dispatcher module. :license: GPL ''' +import traceback + import logging log = logging.getLogger('gajim.c.ged') @@ -85,5 +87,10 @@ class GlobalEventsDispatcher(object): log.debug('%s\nArgs: %s'%(event_name, str(args))) if event_name in self.handlers: for priority, handler in self.handlers[event_name]: - if handler(*args, **kwargs): - return True + try: + if handler(*args, **kwargs): + return True + except Exception, e: + log.error('Error while running an even handler: %s' % \ + handler) + traceback.print_exc()