diff options
author | Lance Stout <lancestout@gmail.com> | 2011-07-01 15:15:13 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2011-07-01 15:18:10 -0700 |
commit | 2a2ac73845ffc8695e2bc55746f45e1a18d55e6c (patch) | |
tree | 7547644de0fa731d2d2e9f466fc0f33663262575 /sleekxmpp/stanza/rootstanza.py | |
parent | d8d9e8df16c07bd13bbac72e4445a2930407b244 (diff) | |
download | slixmpp-2a2ac73845ffc8695e2bc55746f45e1a18d55e6c.tar.gz slixmpp-2a2ac73845ffc8695e2bc55746f45e1a18d55e6c.tar.bz2 slixmpp-2a2ac73845ffc8695e2bc55746f45e1a18d55e6c.tar.xz slixmpp-2a2ac73845ffc8695e2bc55746f45e1a18d55e6c.zip |
So using sys.excepthook to catch errors only works once.
The error bubbles through the event processing loop, breaking it and
hanging the application.
Instead, there is now a .exception(e) method on XMLStream which may
be overridden or reassigned that will receive all unhandled exceptions
(read: not XMPPError) from event and stream handlers.
Diffstat (limited to 'sleekxmpp/stanza/rootstanza.py')
-rw-r--r-- | sleekxmpp/stanza/rootstanza.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sleekxmpp/stanza/rootstanza.py b/sleekxmpp/stanza/rootstanza.py index bc11476e..9e1d1cfa 100644 --- a/sleekxmpp/stanza/rootstanza.py +++ b/sleekxmpp/stanza/rootstanza.py @@ -64,8 +64,7 @@ class RootStanza(StanzaBase): # log the error log.exception('Error handling {%s}%s stanza' % (self.namespace, self.name)) - # Finally raise the exception, so it can be handled (or not) - # at a higher level by using sys.excepthook. - raise e + # Finally raise the exception to a global exception handler + self.stream.exception(e) register_stanza_plugin(RootStanza, Error) |