Revision 0304f041 ncclient/transport/session.py

b/ncclient/transport/session.py
51 51
            listeners = list(self._listeners)
52 52
        for l in listeners:
53 53
            logger.debug('dispatching message to %r' % l)
54
            try:
55
                l.callback(root, raw)
56
            except Exception as e:
57
                logger.warning('[error] %r' % e)
58

  
54
            l.callback(root, raw) # no try-except; fail loudly if you must!
55
    
59 56
    def _dispatch_error(self, err):
60 57
        with self._lock:
61 58
            listeners = list(self._listeners)
62 59
        for l in listeners:
63 60
            logger.debug('dispatching error to %r' % l)
64
            try:
65
                l.errback(err)
61
            try: # here we can be more considerate with catching exceptions
62
                l.errback(err) 
66 63
            except Exception as e:
67 64
                logger.warning('error dispatching to %r: %r' % (l, e))
68 65

  

Also available in: Unified diff