Nest exception handling statements
Sometimes you need to place one exception-handling statement inside another. This process (called nesting) is often used in situations when you want to obtain the right type of user input. For example, if the user enters a non-numeric value instead of a number, you can give the user another chance to enter the right value type. Here is an example:
newChance = True
while newChance == True:
try:
age = int(input('Enter your age: '))
except ValueError:
print('You have to enter a number!')
try:
startOver = int(input('To start over, enter 0. To exit, press any other key. '))
except:
print('OK, you do not want to start over, see you soon!')
newChance = False
else:
if startOver == 0:
newChance = True
else:
print('OK, you do not want to start over, see you soon!')
newChance = False
The code above gives the user a second chance to enter a numeric value. The user can choose whether he wants to enter a new value. If the user enters 0, he will get another chance to enter the right value. If he presses any other key, the while loop will end:
>>> Enter your age: a You have to enter a number! To start over, enter 0. To exit, press any other key. r OK, you do not want to start over, see you soon! >>>RESTART >>> Enter your age: a You have to enter a number! To start over, enter 0. To exit, press any other key. 0 Enter your age: 21



