What is the difference between calling sys.exit()
and throwing an exception in Python?
Let's say I have a Python script which does the following:
If the file doesn't exist or an IOException
gets thrown at runtime, which of the options below makes more sense?
except IOException
block, exit with an error message e.g. sys.exit("something is wrong")
Does option 3 kill the process while 1 and 2 do not? What's the best way to handle the Python exceptions given that Python doesn't have a checked exception like Java (I am really a Java developer ^_^)?
sys.exit
raises a SystemExit
itself so from a purely technical point of view there's no difference between raising that exception yourself or using sys.exit
. And yes you can catch SystemExit
exceptions like any other exception and ignore it.
So it's just a matter of documenting your intent better.
PS: Note that this also means that sys.exit
is actually a pretty bad misnomer - because if you use sys.exit
in a thread only the thread is terminated and nothing else. That can be pretty annoying, yes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With