All pastes #792557 Raw Edit

Someone

public text v1 · immutable
·published 2007-11-21 14:55 UTC
rendered paste body
import 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