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