Verdreht nicht behandelte Fehler

Wenn die twisted-Reaktor ausgeführt wird und eine exception Auftritt in eine latente, die nicht abgefangen wird, "Unbehandelter Fehler" ist gedruckt das terminal zusammen mit einem traceback-und die Ausnahme. Ist es möglich, zu behandeln/abfangen dieser Ausnahmen (z.B., setzen Sie einen Rückruf oder eine Methode überschreiben)?

EDIT: ich bin mir bewusst, dass ich fangen kann ein Fehler durch das hinzufügen einer errback zu einem deferrerd. Was ich wissen möchte ist, ob es eine Möglichkeit abzufangen, eine nicht behandelte Fehler/Ausnahme, durchquert hat seinen Weg bis die Kette auf den Reaktor.

EDIT: im Grunde Frage ich mich, ob die twisted-Reaktor hat einen globalen error-handler oder sowas, die zugegriffen werden kann. Ich Frage mich, weil es druckt die traceback und Fehler aus dem Fehler.

Beispiel:

Unhandled Error
Traceback (most recent call last):
  File "/var/projects/python/server.py", line 359, in run_server
    return server.run()
  File "/var/projects/python/server.py", line 881, in run
    reactor.run()
  File "/usr/local/lib/python2.6/dist-packages/Twisted-11.0.0-py2.6-linux-x86_64.egg/twisted/internet/base.py", line 1162, in run
    self.mainLoop()
  File "/usr/local/lib/python2.6/dist-packages/Twisted-11.0.0-py2.6-linux-x86_64.egg/twisted/internet/base.py", line 1171, in mainLoop
    self.runUntilCurrent()
--- <exception caught here> ---
  File "/usr/local/lib/python2.6/dist-packages/Twisted-11.0.0-py2.6-linux-x86_64.egg/twisted/internet/base.py", line 793, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "/var/projects/python/server.py", line 524, in monitor
    elapsed = time.time() - info.last
exceptions.NameError: global name 'info' is not defined
  • Vielleicht ein code-snippet, das wäre nützlicher, als eine Allgemeine traceback.
  • Im wesentlichen Frage ich mich, ob die twisted-Reaktor hat einen globalen error-handler oder sowas, die zugegriffen werden kann. Ich Frage mich, weil es druckt die traceback und Fehler aus dem Fehler.
  • DAS ist eine klare Frage! Ich glaube nicht, aber lassen Sie mich schauen... 😉
InformationsquelleAutor user369450 | 2011-08-05
Schreibe einen Kommentar