[Python-de] Exceptions aus seperatem Thread anzeigen

Florian Lindner mailinglists at xgm.de
Di Sep 20 16:45:47 CEST 2011


Hallo,

mein Programm soll von extern über einen XML-RPC Server gesteuert werden. Die 
Steuerung soll neben dem eigentlichen Programmfluss ablaufen, also in einem 
seperatem Thread. Dies habe ich so gemacht:

class RPCServer():
    def __init__(self, config, worker_stack):

        server = SimpleXMLRPCServer.SimpleXMLRPCServer( ('', port) )
        server.register_introspection_functions()
        server.register_instance(self)

        self._server_thread = threading.Thread(target = server.serve_forever)
        self._server_thread.daemon = True
        self._server_thread.start()

	def steuerungsfunktion(self):
            pass

RPCServer(config, w_stack)
# normaler Programmfluss geht hier weiter

Nun wirft steuerungsfunktion auch mal eine Exception. Leider bekomme ich diese 
bei dieser Konfiguratiion gar nicht angezeigt und auch keine Reaktion drauf.
Wie kann ich erreichen, dass mir die Exception angezeigt und wie normal drauf 
reagiert wird (also beendet wird, bei einer nichtgefangenen).

Sollte es elegantere Methoden geben das gleiche zu erreichen als meine oben, 
bin ich natürlich auch ganz Ohr.

Grüße,

Florian


Mehr Informationen über die Mailingliste python-de