Python Language Exemples pratiques de gestion des exceptions


Exemple

Entrée utilisateur

Imaginez que vous souhaitiez qu'un utilisateur entre un numéro via une input . Vous voulez vous assurer que l'entrée est un nombre. Vous pouvez utiliser try / except ceci:

Python 3.x 3.0
while True:
    try:
        nb = int(input('Enter a number: '))
        break
    except ValueError:
        print('This is not a number, try again.')

Remarque: Python 2.x utiliserait plutôt raw_input ; la fonction input existe dans Python 2.x mais a une sémantique différente. Dans l'exemple ci-dessus, input accepterait également des expressions telles que 2 + 2 qui évaluent un nombre.

Si l'entrée n'a pas pu être convertie en entier, une valeur ValueError est ValueError . Vous pouvez l'attraper avec, except . Si aucune exception est levée, la break saute hors de la boucle. Après la boucle, nb contient un entier.

Dictionnaires

Imaginez que vous itérez une liste d'entiers consécutifs, comme range(n) , et vous avez une liste de dictionnaires d qui contient des informations sur les choses à faire lorsque vous rencontrez des entiers particuliers, dites sauter le d[i] ones suivantes.

d = [{7: 3}, {25: 9}, {38: 5}]

for i in range(len(d)):
    do_stuff(i)
    try:
       dic = d[i]
       i += dic[i]
    except KeyError:
       i += 1

Un KeyError sera KeyError lorsque vous essayez d'obtenir une valeur d'un dictionnaire pour une clé qui n'existe pas.