import sys
class MyErr( Exception ) :
def __init__ ( self , *args, **kwargs) :
Exception .__init__ ( self , *args)
self .context = sys .exc_info ( ) [ 1 ]
def __str__ ( self ) :
return repr ( self .args ) + ' from ' + repr ( self .context )
print sys .version
try :
print ( xxx)
except Exception as e:
pass
raise MyErr( 'look out' )
aW1wb3J0IHN5cwoKY2xhc3MgTXlFcnIoRXhjZXB0aW9uKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCAqYXJncykKICAgICAgICBzZWxmLmNvbnRleHQgPSBzeXMuZXhjX2luZm8oKVsxXQogICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgcmV0dXJuIHJlcHIoc2VsZi5hcmdzKSArICcgZnJvbSAnICsgcmVwcihzZWxmLmNvbnRleHQpCgpwcmludCBzeXMudmVyc2lvbgoKdHJ5OgogICAgcHJpbnQoeHh4KQpleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICBwYXNzCgpyYWlzZSBNeUVycignbG9vayBvdXQnKQ==
stdout
2.7.3 (default, Jan 2 2013, 16:53:07)
[GCC 4.7.2]
stderr
Traceback (most recent call last):
File "prog.py", line 17, in <module>
raise MyErr('look out')
__main__.MyErr: ('look out',) from NameError("name 'xxx' is not defined",)