1
2import sys, types
3
4def test(obj):
5    """
6    >>> test(Exception('hi'))
7    Raising: Exception('hi',)
8    Caught: Exception('hi',)
9    """
10    print u"Raising: %s%r" % (obj.__class__.__name__, obj.args)
11    try:
12        raise obj
13    except:
14        info = sys.exc_info()
15        if sys.version_info >= (2,5):
16            assert isinstance(info[0], type)
17        else:
18            assert isinstance(info[0], types.ClassType)
19        print u"Caught: %s%r" % (info[1].__class__.__name__, info[1].args)
20