Comprendre la différence entre 2 ecritures (2eme question
Bonjour
Toujours dans la video Création des méthodes ajouter et enlever (docstring.fr)
je voudrais comprendre pourquoi on utilise raise dans:
def ajouter(self, element):
if not isinstance(element, str):
raise ValueError("Vous ne pouvez ajouter que des chaînes de caractères!")
Ne serait il pas possible de traiter cette erreur comme la suivante en utilisant LOGGER ?
def ajouter(self, element):
if not isinstance(element, str):
LOGGER.error(f"{element} n'est pas une chaînes de caractères!")
return False
Merci de votre aide
JMarc
Bonsoir Jean-Marc,
tu peux oui mais ce que tu veux c'est que ton script prévienne d'un mauvais format pour ton entrée et qu'il s'arête. Là c'est un peu risqué avec le log car effectivement tu auras un message pour dire que tu n'avais pas entré un bon format mais ton script va enchaîner les instructions. Tu va perdre le contrôle du script.
Salut Jean-Marc,
Pour t'apporter quelques précisions supplémentaires :
Il est effectivement possible de traiter cette erreur en utilisant un logger plutôt qu'en utilisant l'instruction raise.
Mais, l'utilisation de raise offre des avantages.
Déjà, raise permet de lever une exception, ce qui signifie que le programme arrête immédiatement son exécution et retourne à l'endroit où l'exception a été levée.
Ça peut être utile lorsque l'erreur est grave et qu'il n'est pas possible de continuer à exécuter le programme de manière cohérente avec ce que tu souhaitais faire.
En utilisant un logger, la seule chose qui se passe est que l'erreur est enregistrée dans un fichier log. Le programme continue à s'exécuter normalement, ce qui peut entraîner des comportements inattendus / effets de bords si l'erreur n'est pas correctement gérée.
Aussi, l'utilisation de raise permet de spécifier le type d'exception levée. Dans ton exemple, le type d'exception est ValueError, ce qui veut dire que l'erreur se produit lorsqu'une valeur incorrecte est utilisée. Ça peut être utile pour les personnes qui utilisent cette fonction, car elles peuvent savoir exactement quel type d'erreur se produit et comment y remédier.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte