11 votes

Quel type d'exception pour les chaînes de caractères ?

Si j'ai ce qui suit, en fait pour toute chaîne de caractères pour laquelle vous vérifiez IsNullOrEmpty et qui s'avère être vide, quel type d'exception doit-on lancer, et ce n'est pas un argument pour une méthode ?

J'ai toujours du mal à choisir les types d'exception car il y en a tellement. Il s'agit simplement d'extraire une valeur du web.config et de vérifier si SandboxSoapApiUsername est vide.

if(string.IsNullOrEmpty(ConfigUtility.SandboxSoapApiUsername))
        throw new WTF do I throw here??? ahhh

Cela dépend probablement de l'utilisation/du contexte, non ? Eh bien, je vais utiliser la chaîne retournée pour définir un champ privé de classe. Je dois donc vérifier si la chaîne est vide au début du processus plutôt que plus tard (plutôt que de compter sur un autre code pour vérifier la propriété liée au champ privé que je vais définir ConfigUtility.SandboxSoapApiUsername).

Étant donné que les propriétés de cette classe auxquelles j'attribue chaque ConfigUtility.MEthodName vont être utilisées dans une requête SOAP, je me suis dit qu'une UriFormatException serait peut-être appropriée ici, même si ce n'est pas l'Uri ?

0voto

Patrick Karcher Points 11927

Puisqu'il semble que quelque chose n'a pas été configuré correctement, je suggérerais System.Configuration.ConfigurationErrorsException .

Note : n'utilisez pas System.Configuration.ConfigurationException . Il s'agit d'une ancienne version et elle a été dépréciée.

Note 2 : Bien que je sois sûr à 90% qu'il s'agit d'une valeur de configuration manquante, si c'est un paramètre de méthode qui est manquant, lancez un ArgumentException o ArgumentOutOfRangeException .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X