I'm a little confused with the difference between these two approaches and could use some clarification. I have a stand alone python script in which all my geo-processes are enclosed in try/except blocks which is my standard operating procedure. However, in this particular script, if any exceptions are tossed, I want the script to abort. It will be run as a scheduled task.
Exit from Python. This is implemented by raising the
SystemExit exception, so cleanup actions specified by finally clauses of
try statements are honored, and it is possible to intercept the exit attempt at an outer level....
exit() ultimately “only” raises an exception, it will only exit the process when called from the main thread, and the exception is not intercepted.
If I try to use sys.exit in a console I get scolded with:
sys.exit() An exception has occurred, use %tb to see the full traceback. SystemExit C:\EnvClones\arcgispro-py3-clone243\lib\site-packages\IPython\core\interactiveshell.py:3327: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
So using exit() is the clear favorite there. Is sys.exit() preferred in a stand alone script?
Solved! Go to Solution.
Thanks- read that too... hence my confusion...
However, reading through it again, the conclusions section states:
sys.exit() in scripts, or
raise SystemExit() if you prefer.