Exceptions pour la gestion des saisies utilisateurs
Bonjour à tous !
Dans le cadre de mon apprentissage de C#, je développe (en procédural et en mode console) un petit programme d'arithmétique qui, pour le moment, permet de décomposer un nombre entier naturel (un long) en produit de ses facteurs premiers.
Il s'agit d'une boucle principale dans la méthode Main du programme qui demande à l'utilisateur de saisir un mot clé, qui appelle la fonction correspondante.
Les mot clés sont rassemblés dans une enum Commandes :
Code:
enum Commandes { Aide, Décomposition, Quitter };
J'ai une fonction SaisieCommande() qui gère les commandes saisies par l'utilisateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public static Commandes SaisieCommande()
{
Console.Write("Entrez une commande (Aide, Quitter, etc.) : ");
string saisie = Console.ReadLine();
Commandes commandeSaisie = (Commandes)Enum.Parse(typeof(Commandes), saisie, true);
foreach (Commandes commande in Enum.GetValues(typeof(Commandes)))
{
if (!commande.Equals(commandeSaisie))
{
throw new ArgumentException("Vous avez entré une mauvaise commande !");
}
}
return commandeSaisie;
} |
J'aimerais que cette fonction puisse gérer les erreurs de saisie utilisateur en renvoyant l'exception ArgumentException("Vous avez entré une mauvaise commande !").
Plusieurs questions se posent :
1) Est ce que l'exception choisie est la meilleure pour ce cas de figure ?
2) Comment faire pour comparer la saisie utilisateur à toutes les commandes possibles afin de savoir si l'exception doit être renvoyée ou pas ? Car actuellement mon programme renvoie l'exception même quand je saisie une bonne commande. J'en suis conscient !
Voilà, je vous remercie d'avance pour toute aide !