On 2/15/2012 8:12 AM, Andrea Crotti wrote:
I have the following very simplified situation
from atexit import register
def goodbye(): print("saying goodbye")
def main():
> while True: var = raw_input("read something")
if __name__ == '__main__':
> register(goodbye)
> main()
But in my case the "goodbye" function is deleting the logging file
which was created during the application execution. Now the problem
is that it *always* executes, even when the applications quits for
some bad errors.
Is there a way to have an exit hook, which doesn't execute in case of
errors?
Have a single no-error normal exit point.
if __name__ == '__main__':
main()
cleanup()
if you really want to exit by exceptions rather than by returns,
if __name__ == '__main__':
try: main()
except SystemExit: normal_exit_cleanup()
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list