I'm trying to run a basic prompt that takes a number, then runs a recursive function on it.
Any negative number causes a recursion error, for the function being unable to handle them.
Now, I've learned with Python that situations like this call for a "try/except" model. Here's what I came up with:
try:
choice = int(input('Enter a number: '))
INSERT RECURSIVE FUNCTION HERE
except RecursionError as err:
print('Error: ', str(err))
This exception doesn't work, as it still shows the entire recursive process in red lines, with my exception only replacing the final line. I know I could easily solve this by logic, for example:
if choice < 0:
print("Error: Bro, We don't take no Negative Numbers around here.")
However, I was taught we generally want to avoid "solving errors by Logic" in Python, instead working via the "try/except" model.
What could I do to reject negative numbers via a "try/except" model instead of an "if/else"?
If you can help me understand a way to make this react to ValueError, that'd be another great help.
Say, you want to print only positive numbers and if the number is negative you raise an exception
a = int(raw_input())
if a < 0:
myError = ValueError('a should be a positive number')
raise myError
print(a)
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