Daniel Roy Greenfeld

Daniel Roy Greenfeld

About | Books

Exceptions as Decorator Arguments

I wanted to see if I could have an exception as a decorator argument. Here is what I came up with:

import functools

class MyGoof(Exception):

def pass_goof(exception):
    def decorator(test_func):
        def wrapper(*args, **kwargs):
                return test_func(*args, **kwargs)
            except exception as e:
                return None
        return wrapper
    return decorator

def test1():
    return "test1"

def test2():
    raise MyGoof

assert test1() == 'test1'
assert test2() == None
Tags: python howto