diff options
author | elie <elie> | 2013-06-26 15:44:44 +0000 |
---|---|---|
committer | elie <elie> | 2013-06-26 15:44:44 +0000 |
commit | 42b77241693f023243c500f3f546118ddf4b1256 (patch) | |
tree | 4f5261521d70440f170cd5e0db2f6d0fdcfd0be4 /pysnmp/carrier | |
parent | 20a21e04fdb09ff2e36822ac539c24ad80628e6c (diff) | |
download | pysnmp-42b77241693f023243c500f3f546118ddf4b1256.tar.gz |
exception re-raising improved at asynsock/twisted dispatchers so that
original traceback is preserved and reported
Diffstat (limited to 'pysnmp/carrier')
-rw-r--r-- | pysnmp/carrier/asynsock/dispatch.py | 3 | ||||
-rw-r--r-- | pysnmp/carrier/twisted/dispatch.py | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/pysnmp/carrier/asynsock/dispatch.py b/pysnmp/carrier/asynsock/dispatch.py index 8df5542..d232f87 100644 --- a/pysnmp/carrier/asynsock/dispatch.py +++ b/pysnmp/carrier/asynsock/dispatch.py @@ -1,6 +1,7 @@ # Implements I/O over asynchronous sockets from time import time from sys import exc_info +from traceback import format_exception from asyncore import socket_map from asyncore import loop from pysnmp.carrier.base import AbstractTransportDispatcher @@ -37,5 +38,5 @@ class AsynsockDispatcher(AbstractTransportDispatcher): except KeyboardInterrupt: raise except: - raise PySnmpError('poll error: %s' % exc_info()[1]) + raise PySnmpError('poll error: %s' % ';'.join(format_exception(*exc_info()))) self.handleTimerTick(time()) diff --git a/pysnmp/carrier/twisted/dispatch.py b/pysnmp/carrier/twisted/dispatch.py index 4f77cd0..cb663b8 100644 --- a/pysnmp/carrier/twisted/dispatch.py +++ b/pysnmp/carrier/twisted/dispatch.py @@ -8,10 +8,10 @@ # # Description: Transport dispatcher based on twisted.internet.reactor # -import sys, time +import sys, time, traceback from twisted.internet import reactor, task from pysnmp.carrier.base import AbstractTransportDispatcher -from pysnmp.carrier import error +from pysnmp.error import PySnmpError class TwistedDispatcher(AbstractTransportDispatcher): """TransportDispatcher based on twisted.internet.reactor""" @@ -28,8 +28,10 @@ class TwistedDispatcher(AbstractTransportDispatcher): if not reactor.running: try: reactor.run() - except Exception: - raise error.CarrierError(sys.exc_info()[1]) + except KeyboardInterrupt: + raise + except: + raise PySnmpError('reactor error: %s' % ';'.join(traceback.format_exception(*sys.exc_info()))) # jobstarted/jobfinished might be okay as-is |