I am doing some practice problems from online with python and I have a question about how to stay in a script if an error is raised. For example, I want to read in values from prompt and compare them to a set integer value inside the script. The only problem is that when someone enters something other than a number 'int(value)' (ex. value = 'fs') raises an error and exits the script. I want to have it so if this happens I stay inside the script and ask for another value to be entered at the prompt.
17 Answers
Use try/except.
>>> while True: ... try: ... x = int(raw_input("Please enter a number: ")) ... break ... except ValueError: ... print "Oops! That was no valid number. Try again..." ... success = false while not success: try: value = raw_input('please enter an integer') int(value) success = true except: pass How about catching it?
try: a = int('aaa') except ValueError: print('Still working') Ah, you just want to catch the error (as long as it isn't final): see for details? Or are you looking for something else?
for this, you use try... except as explained in the python documentation
Read up on the try: except: idiom here
if you are doing it as a function you can do it as a decorator of the function
def retry(func): def wrapper(*args,**kwargs): while True: try: return func(*args,**kwargs) except Exception as e: print(f"{e} running again") # or simply pass return wrapper @retry def myfunction(): if badthinghappend: raise Error return something