gevent.util

class gevent.util.wrap_errors(errors, func)

Helper to make function return an exception, rather than raise it.

Because every exception that is unhandled by greenlet will be logged, it is desirable to prevent non-error exceptions from leaving a greenlet. This can done with simple try/except construct:

def wrapped_func(*args, **kwargs):
    try:
        return func(*args, **kwargs)
    except (A, B, C), ex:
        return ex

wrap_errors provides a shortcut to write that in one line:

wrapped_func = wrap_errors((A, B, C), func)

It also preserves __str__ and __repr__ of the original function.

Navigation

Related pages