'Execute a code object.
When an exception occurs, self.showtraceback() is called to
display a traceback.  All exceptions are caught except
SystemExit, which is reraised.
A note about KeyboardInterrupt: this exception may occur
elsewhere in this code, and may not always be caught.  The
caller should be prepared to deal with it.'

def runcode(self, code):

    try:
        exec code in self.locals
    except SystemExit:
        raise
    except:
        self.showtraceback()
    else:
        if softspace(sys.stdout, 0):
            print
