我们在用户对象上有一些Django保存后信号,这些信号调用外部依赖项(CRM,邮件提供商等)。这些调用很有用,如果用户发生,则不应该阻止或错误。
库有各种错误状态(无法连接外部服务,坏键等),模型很难,所以我做了一个异常抑制装饰器,我可以应用于信号(s )所以他们永远不会阻止。
def exception_suppressor()
def suppressor(*args, **kwargs):
try:
return fn(*args, **kwargs)
except Exception as e:
LOGGER.info("Suppressing exception: " + str(e))
return suppressor
答案 0 :(得分:1)
您的代码对我来说很好。我在很多项目中都使用了try-except-else块,这给我带来了很大的痛苦。我不是Python方面的专家,所以我不确定是否有更好的方法可以做到这一点,但这段代码应该足够好。