English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python en a beaucoupLes exceptions intégrées, qui forcent votre programme à afficher des erreurs lorsque certaines erreurs se produisent.
Mais parfois, vous pourriez avoir besoin de créer des exceptions personnalisées qui répondent à vos besoins spécifiques.
En Python, l'utilisateur peut définir ce type d'exception en créant une nouvelle classe. Cette classe d'exception doit être dérivée directement ou indirectement de la classe Exception. La plupart des exceptions intégrées sont également dérivées de cette classe.
>>> class CustomError(Exception): ... pass ... >>> raise CustomError Traceback (appel le plus récent en dernier): ... __main__.CustomError >>> raise CustomError("An error occurred") Traceback (appel le plus récent en dernier): ... __main__.CustomError: An error occurred
Dans ce cas, nous avons créé une exception personnalisée nommée CustomError, qui est dérivée de la classe Exception. Comme pour d'autres exceptions, vous pouvez lever cette nouvelle exception en utilisant une instruction raise avec un message d'erreur optionnel.
Lorsque nous développons de grands programmes Python, il est préférable de placer toutes les exceptions définies par l'utilisateur par l'utilisateur dans un fichier séparé. De nombreux modules standard peuvent faire cela. Ils définissent les exceptions dans des fichiers nommés exceptions.py ou errors.py.
Les classes d'exceptions définies par l'utilisateur peuvent effectuer toutes les opérations que peuvent exécuter les classes normales, mais nous les rendons généralement simples et claires. La plupart des implémentations déclarent une classe de base personnalisée à partir de laquelle d'autres classes d'exceptions dérivent. Dans l'exemple suivant, nous allons clarifier ce concept.
Dans cet exemple, nous allons expliquer comment utiliser les exceptions définies par l'utilisateur dans un programme.
Ce programme demandera à l'utilisateur d'entrer un nombre jusqu'à ce qu'ils deviennent le bon guess de la valeur stockée. Pour les aider à comprendre, on leur indiquera si leur guess est plus grand ou plus petit que le nombre stocké.
# Define Python user-defined exceptions class Error(Exception): """Base class for other exceptions""" pass class ValueTooSmallError(Error): """Triggered when the input value is too small""" pass class ValueTooLargeError(Error): """Triggered when the input value is too large""" pass # Our main program # The user guesses a number until he/She guesses it right # You need to guess this number number = 10 while True: try: i_num = int(input("Enter a number: ")) if i_num < number: raise ValueTooSmallError elif i_num > number: raise ValueTooLargeError break except ValueTooSmallError: print("This value is too small, please try again!") print() except ValueTooLargeError: print("This value is too large, please try again!") print() print("Congratulations! You guessed it right.")
This is an example of the program running.
Enter a number: 12 This value is too large, please try again! Enter a number: 0 This value is too small, please try again! Enter a number: 9 This value is too small, please try again! Enter a number: 10 Congratulations! You guessed it right.
Here, we define a base class named Error.
The other two exceptions (ValueTooSmallError and ValueTooLargeError) that our program actually triggers are derived from this class. This is the standard method for defining user-defined exceptions in Python programming, but you are not limited to this method.
Visit this page for detailed informationHow to handle exceptions in Python.