#! /usr/bin/env python import sys class ErrorContext(object): def __init__(self): pass def __enter__(self): pass def __exit__(self, *exc_info): print '__exit__()' print ' ', exc_info return False print "TEST: raise ZeroDivisionError('...')" try: with ErrorContext(): raise ZeroDivisionError('integer division or modulo by zero') except ZeroDivisionError: print 'sys.exc_info()' print ' ', sys.exc_info() print print "TEST: 1 // 0" try: with ErrorContext(): 1 // 0 except ZeroDivisionError: print 'sys.exc_info()' print ' ', sys.exc_info() print print "TEST: try: 1 // 0; except: raise" try: with ErrorContext(): try: 1 // 0 except ZeroDivisionError: raise except ZeroDivisionError: print 'sys.exc_info()' print ' ', sys.exc_info()