summaryrefslogtreecommitdiff
path: root/sleekxmpp/stanza
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/stanza')
-rw-r--r--sleekxmpp/stanza/rootstanza.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/sleekxmpp/stanza/rootstanza.py b/sleekxmpp/stanza/rootstanza.py
index 6975c72a..8123c5f8 100644
--- a/sleekxmpp/stanza/rootstanza.py
+++ b/sleekxmpp/stanza/rootstanza.py
@@ -54,16 +54,17 @@ class RootStanza(StanzaBase):
e.extension_args)
self['error'].append(extxml)
self['error']['type'] = e.etype
+ self.send()
else:
- # We probably didn't raise this on purpose, so send a traceback
+ # We probably didn't raise this on purpose, so send an error stanza
self['error']['condition'] = 'undefined-condition'
- if sys.version_info < (3, 0):
- self['error']['text'] = "SleekXMPP got into trouble."
- else:
- self['error']['text'] = traceback.format_tb(e.__traceback__)
- log.exception('Error handling {%s}%s stanza' %
- (self.namespace, self.name))
- self.send()
-
+ self['error']['text'] = "SleekXMPP got into trouble."
+ self.send()
+ # 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
register_stanza_plugin(RootStanza, Error)