Hi, I'm Daniel Roy Greenfeld, and welcome to my blog. I write about Python, Django, and much more.

Exceptions as Decorator Arguments

Tuesday, December 24, 2013 (permalink)

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