summaryrefslogtreecommitdiff
path: root/sleekxmpp/stanza
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2011-07-01 15:15:13 -0700
committerLance Stout <lancestout@gmail.com>2011-07-01 15:18:10 -0700
commit2a2ac73845ffc8695e2bc55746f45e1a18d55e6c (patch)
tree7547644de0fa731d2d2e9f466fc0f33663262575 /sleekxmpp/stanza
parentd8d9e8df16c07bd13bbac72e4445a2930407b244 (diff)
downloadslixmpp-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')
-rw-r--r--sleekxmpp/stanza/rootstanza.py5
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)