How to throw error and exit with a custom message in python
Question:
I’ve seen people suggesting sys.exit() in Python.
My question is that, is there any other way to exit the execution of current script, I mean termination, with an error.
Something like this:
sys.exit("You can not have three process at the same time.")
Currently my solution would be:
print("You can not have three process at the same time.")
sys.exit()
Answers:
Calling sys.exit
with a string will work. The docs mention this use explicitly:
In particular, sys.exit(“some error message”) is a quick way to exit a program when an error occurs.
You can also raise an error like this:
raise SystemExit('Error: 3 processes cannot run simultaneously.')
One advantage of this approach is that you don’t have to import the Python sys
module. This works on Linux with Python 3 and Python 2. I have not tested it on Windows or Mac OS.
There are 3 approaches, the first as lvc mentioned is using sys.exit
sys.exit('My error message')
The second way is using print
, print can write almost anything including an error message
print >>sys.stderr, "fatal error" # Python 2.x
print("fatal error", file=sys.stderr) # Python 3.x
The third way is to rise an exception which I don’t like because it can be try-catch
raise SystemExit('error in code want to exit')
it can be ignored like this
try:
raise SystemExit('error in code want to exit')
except:
print("program is still open")
You have to use import sys
first
Then use sys.exit("your custom error message")
I’ve seen people suggesting sys.exit() in Python.
My question is that, is there any other way to exit the execution of current script, I mean termination, with an error.
Something like this:
sys.exit("You can not have three process at the same time.")
Currently my solution would be:
print("You can not have three process at the same time.")
sys.exit()
Calling sys.exit
with a string will work. The docs mention this use explicitly:
In particular, sys.exit(“some error message”) is a quick way to exit a program when an error occurs.
You can also raise an error like this:
raise SystemExit('Error: 3 processes cannot run simultaneously.')
One advantage of this approach is that you don’t have to import the Python sys
module. This works on Linux with Python 3 and Python 2. I have not tested it on Windows or Mac OS.
There are 3 approaches, the first as lvc mentioned is using sys.exit
sys.exit('My error message')
The second way is using print
, print can write almost anything including an error message
print >>sys.stderr, "fatal error" # Python 2.x
print("fatal error", file=sys.stderr) # Python 3.x
The third way is to rise an exception which I don’t like because it can be try-catch
raise SystemExit('error in code want to exit')
it can be ignored like this
try:
raise SystemExit('error in code want to exit')
except:
print("program is still open")
You have to use import sys
first
Then use sys.exit("your custom error message")