擅长:python、mysql、java
<p>在默认情况下关闭所有异常可能是你能做的最糟糕的事情。在</p>
<p>无论如何,对于您的问题,您可以编写一个通用包装器,它只重定向到connection对象。在</p>
<pre><code>class ReddisWrapper(object):
conn = conn # Here your reddis object
def __getattr__(self, attr):
def wrapper(*args, **kwargs):
# Get the real reddis function
fn = getattr(self.conn, attr)
# Execute the function catching exceptions
try:
return fn(*args, **kwargs)
# Specify here the exceptions you expect
except:
log(...)
return wrapper
</code></pre>
<p>然后你会这样叫:</p>
^{pr2}$
<p>这还没有经过测试,而且只适用于方法。对于属性,您应该捕获不可调用的异常并正确地作出反应。在</p>