issue #16: Python 2.4-3.x compatible exception handling.

pull/193/head
David Wilson 6 years ago
parent 8889708f24
commit c4bef102fe

@ -215,7 +215,8 @@ def io_op(func, *args):
while True:
try:
return func(*args), False
except (select.error, OSError), e:
except (select.error, OSError):
e = sys.exc_info()[1]
_vv and IOLOG.debug('io_op(%r) -> OSError: %s', func, e)
if e[0] == errno.EINTR:
continue
@ -327,7 +328,8 @@ class Message(object):
self = cls(**kwargs)
try:
self.data = cPickle.dumps(obj, protocol=2)
except cPickle.PicklingError, e:
except cPickle.PicklingError:
e = sys.exc_info()[1]
self.data = cPickle.dumps(CallError(e), protocol=2)
return self
@ -350,8 +352,9 @@ class Message(object):
# Must occur off the broker thread.
obj = unpickler.load()
self._unpickled = obj
except (TypeError, ValueError), ex:
raise StreamError('invalid message: %s', ex)
except (TypeError, ValueError):
e = sys.exc_info()[1]
raise StreamError('invalid message: %s', e)
if throw:
if obj == _DEAD and throw_dead:
@ -1032,8 +1035,8 @@ class Latch(object):
e = None
try:
io_op(select.select, [rsock], [], [], timeout)
except Exception, e:
pass
except Exception:
e = sys.exc_info()[1]
self._lock.acquire()
try:
@ -1074,7 +1077,8 @@ class Latch(object):
def _wake(self, sock):
try:
os.write(sock.fileno(), '\x7f')
except OSError, e:
except OSError:
e = sys.exc_info()[1]
if e[0] != errno.EBADF:
raise
@ -1166,7 +1170,8 @@ class Waker(BasicStream):
# ignore EBADF here.
try:
self.transmit_side.write(' ')
except OSError, e:
except OSError:
e = sys.exc_info()[1]
if e[0] != errno.EBADF:
raise
@ -1626,7 +1631,8 @@ class ExternalContext(object):
for msg in self.channel:
try:
msg.reply(self._dispatch_one(msg))
except Exception, e:
except Exception:
e = sys.exc_info()[1]
_v and LOG.debug('_dispatch_calls: %s', e)
msg.reply(CallError(e))
self.dispatch_stopped = True

@ -116,7 +116,7 @@ class Stream(mitogen.parent.Stream):
def _wrap_child_main(self, childfp):
try:
self._child_main(childfp)
except BaseException, e:
except BaseException:
handle_child_crash()
def _child_main(self, childfp):

@ -393,11 +393,11 @@ def _proxy_connect(name, method_name, kwargs, econtext):
name=name,
**kwargs
)
except mitogen.core.StreamError, e:
except mitogen.core.StreamError:
return {
'id': None,
'name': None,
'msg': str(e),
'msg': str(sys.exc_info()[1]),
}
return {

@ -181,11 +181,13 @@ class Service(object):
response = self._on_receive_message(msg)
if response is not self.NO_REPLY:
msg.reply(response)
except mitogen.core.CallError, e:
except mitogen.core.CallError:
LOG.warning('%r: %s', self, msg)
e = sys.exc_info()[1]
msg.reply(e)
except Exception, e:
except Exception:
LOG.exception('While invoking %r.dispatch()', self)
e = sys.exc_info()[1]
msg.reply(mitogen.core.CallError(e))
@ -250,9 +252,11 @@ class DeduplicatingService(Service):
try:
response = getattr(self, method_name)(**kwargs)
self._produce_response(key, response)
except mitogen.core.CallError, e:
except mitogen.core.CallError:
e = sys.exc_info()[1]
self._produce_response(key, e)
except Exception, e:
except Exception:
e = sys.exc_info()[1]
self._produce_response(key, mitogen.core.CallError(e))
return self.NO_REPLY

@ -37,6 +37,7 @@ import errno
import os
import socket
import struct
import sys
import tempfile
import mitogen.core
@ -49,7 +50,8 @@ def is_path_dead(path):
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
s.connect(path)
except socket.error, e:
except socket.error:
e = sys.exc_info()[1]
return e[0] in (errno.ECONNREFUSED, errno.ENOENT)
return False

Loading…
Cancel
Save