Lever une exception
Résolu
aze
-
aze -
aze -
Bonsoir,
Savez-vous s'il est possible de "personnaliser" les exceptions qu'on lève?
Lorsque l'utilisateur entrer la mise, il peut commettre 2 erreurs.
Soit il entre des caractères (la conversion en int n'est pas possible, il y a une ValueError), soit il entre une valeur négative ou >= à 50, ce qui pour moi est évalement une "ValueError".
Si je veux personnaliser le message d'erreur je suis obligé de transformer une valueerror en une syntaxError. Il y a-t-il un moyen plus propre pour lever plusieurs exceptions d'un même type?
Voici mon code.
je vous remercie
Savez-vous s'il est possible de "personnaliser" les exceptions qu'on lève?
Lorsque l'utilisateur entrer la mise, il peut commettre 2 erreurs.
Soit il entre des caractères (la conversion en int n'est pas possible, il y a une ValueError), soit il entre une valeur négative ou >= à 50, ce qui pour moi est évalement une "ValueError".
Si je veux personnaliser le message d'erreur je suis obligé de transformer une valueerror en une syntaxError. Il y a-t-il un moyen plus propre pour lever plusieurs exceptions d'un même type?
Voici mon code.
mise = input()
try:
mise = int(mise)
if (0<=mise<50) == False :
raise SyntaxError
except ValueError:
print("""veuillez entrer un nombre en caractères numériques (exemple "49")""")
except SyntaxError:
print('Le nombre doit être de 0 à 49 compris')
je vous remercie
A voir également:
- Lever une exception
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Erreur d'application : une exception côté client s'est produite (consultez la console du navigateur pour plus d'informations). - Forum Services en ligne
- Application error: a client-side exception has occurred while loading www.leboncoin.fr (see the browser console for more information). - Forum Réseaux sociaux
- Tous les paragraphes sont considérés comme des titres ✓ - Forum Word
- Erreur d'application : une exception côté client s'est produite (consultez la console du navigateur pour plus d'informations) . ✓ - Forum Instagram
1 réponse
Tu peux utiliser une assertion pour faire ça.
Façon pour n'avoir qu'un message pour toutes les erreurs rencontrées.
Mais tu peux aussi utiliser des messages pour chaque type d'erreur.
Façon pour n'avoir qu'un message pour toutes les erreurs rencontrées.
while True:
mise = input('Entrez un nombre entre 0 et 49 inclus : ')
try:
mise = int(mise)
assert 0 <= mise < 50
except (ValueError, AssertionError):
print("Veuillez entrer un nombre de 0 à 49 inclus !\n")
else:
break
print('Mise de {}'.format(mise))
Mais tu peux aussi utiliser des messages pour chaque type d'erreur.
while True:
mise = input('Entrez un nombre entre 0 et 49 inclus : ')
try:
mise = int(mise)
assert 0 <= mise < 50
except ValueError:
print("Veuillez entrer un nombre svp !\n")
except AssertionError:
print('Veuillez entre nombre entre 0 et 49 inclus svp !\n')
else :
break
print('Mise de {}'.format(mise))
aze
merci gudu!