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). - Windows 11
- A java exception has occurred - Forum Logiciels
- Message D'erreur A Java has exception has occured ! - Forum Minecraft
- A java exception has occurred (( minecraft.serv )) - Forum Minecraft
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!