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.
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user