Ich habe ein Problem mit mehreren Dekoratoren mit Spyne. Ich möchte universelle try/except Decorator zu jeder Methode in der Klasse hinzufügen. Mein Code sieht wie folgt aus:Wie mehrere Dekorierer mit Spyne verwenden
def try_except(fn):
def wrapped(*args, **kwargs):
try:
return fn(*args, **kwargs)
except Exception:
do_sth()
return wrapped
class A(ServiceBase):
@rpc(Unicode, Integer, _returns=[Boolean, Integer], _out_variable_names=["FooResult", "bar"])
@try_except
def Foo(self, foo, bar):
do_sth()
return True, 0
Mit @try_except ich Anzahl von Argumenten Fehler bekommen, was mache ich falsch?
Können Sie die Traceback hinzufügen? – obskyr
Beachten Sie, dass Decorators * "inside out" * angewendet werden, so dass jeder Fehler, der aus dem Code im 'rpc'-Wrapper geworfen wird, nicht von' try_except' abgefangen wird – jonrsharpe