rendered paste bodyimport sys
def exception_wrapper(functor, exc_list=NotSet):
def wrapper(*rest, **kw_args):
try:
functor(*rest, **kw_args)
except exc_list:
etype, evalue, etrace = sys.exc_info()
print "WARNING: Intercepted exception %s: %s" % (etype, evalue)
# end wrapper
return wrapper
# end exception_wrapper
class A(object):
def foo(self, n):
if n % 2 == 0:
raise ValueError("n=%d is even" % n)
elif n == 5:
raise AttributeError("n=%d is five" % n)
print "n=%s is ok" % n
foo = exception_wrapper(foo, ValueError)
def bar(self, n):
self.foo(n)
bar = exception_wrapper(bar, (ValueError, AttributeError))
# end A