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 :
J'ai une fonction SaisieCommande() qui gère les commandes saisies par l'utilisateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part enum Commandes { Aide, Décomposition, Quitter };
J'aimerais que cette fonction puisse gérer les erreurs de saisie utilisateur en renvoyant l'exception ArgumentException("Vous avez entré une mauvaise commande !").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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 !
Partager