Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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()
like image 960
Mostafa Talebi Avatar asked Mar 25 '14 11:03

Mostafa Talebi


People also ask

How do I create a custom error message in Python?

try: int("string") #the code that raises the error except ValueError: raise ValueError("Your custom message here.")

How do you return and exit in Python?

You can use sys. exit() to exit from the middle of the main function. However, I would recommend not doing any logic there. Instead, put everything in a function, and call that from __main__ - then you can use return as normal.


2 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.

like image 82
lvc Avatar answered Oct 25 '22 14:10

lvc


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")
like image 53
nima moradi Avatar answered Oct 25 '22 14:10

nima moradi