In general you should only catch the exceptions you want to catch, therefore avoiding the issue of catching "unexpected" ones, for instances the programming unexpectandly closing.
Well, exception handling is expensive (when it catches one) so it really is up to you. If you are using eval and know it might "EOF" then you should probably look to handle that. The main IF statement style I can think of (checking the end of the string) wouldn't be much of an improvement. Currently I would be very worried about seeing that code as it breaks a number of "conventions". However it depends on the importance of the code to wherever or not you should change this. (Global variable, the use of Eval, the CATCH ALL except and the setting of a global variable at the end.) I've seen a good few (simple and advanced) calculator examples using python on the NET, it might be worth looking at some to see their style of coding a calculator to help your own. -- http://mail.python.org/mailman/listinfo/python-list