How to throw error and exit with a custom message in python

PythonError Handling

Python Problem Overview


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()

Python Solutions


Solution 1 - Python

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.

Solution 2 - Python

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")

Solution 3 - Python

I know this is an old thread, however 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.

Solution 4 - Python

You have to use import sys first

Then use sys.exit("your custom error message")

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMostafa TalebiView Question on Stackoverflow
Solution 1 - PythonlvcView Answer on Stackoverflow
Solution 2 - Pythonnima moradiView Answer on Stackoverflow
Solution 3 - PythonOsianView Answer on Stackoverflow
Solution 4 - PythonDasunView Answer on Stackoverflow