On Wed, May 25, 2016 at 03:44:28PM -0400, Alex Hall wrote: > You're not missing anything; I wasn't clear. I wasn't sure if raise or > sys.exit(1) were the preferred ways, or if there was some other way I > didn't know about. I've never had to force a script to halt before, at > least not one I mean to schedule to run on its own once a day, so wanted to > check that those are indeed the recommended ways.
raise and sys.exit() do different things, which both happen to result in the script halting. `raise` re-raises the current exception, that's all. What happens from that point depends: the exception could be caught by another try...except handler, or it might not be. If it isn't caught by anything, the interpreter will print a traceback and error message, and then halt with a non-zero exit code. `sys.exit` will exit. Technically it actually raises an exception, SystemExit, which can also be caught like any other exception, but normally it won't be. (I can go into detail about exactly when it will be caught if you like.) If you call sys.exit with no argument, or with argument 0, then it will halt the script with exit code 0 ("success") and no traceback. Any other integer code will set the exit code to that value, and any string value will print that string to stderr and then exit with a non-zero exit code. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor