If the exception isn't caught, it is printed to standard error. This means that either __str__ or __repr__ is called (to convert it to a displayable string). If the exception is caught, those methods *probably* won't be called.
-- Where you are is not as important as where you are going. - Oliver Wendell Holmes, U.S. Supreme Court Justice -- http://mail.python.org/mailman/listinfo/python-list