135 votes

ConfigurationManager.AppSettings["blah"] lancera-t-il une exception si "blah" n'existe pas ?

Est-ce que ConfigurationManager.AppSettings["blah"] lancera une exception si "blah" n'existe pas dans le web/app.config ?

1voto

Kasper Points 21

Comme Tim l'a dit, il retournera simplement null.

Cependant, si vous voulez qu'il lève une exception lorsqu'il n'est pas trouvé, vous pouvez faire ceci :

var myImportantSetting= ConfigurationManager.AppSettings["important_setting"] ?? throw new SettingsPropertyNotFoundException("AppSetting missing.");

-2voto

Ben Points 6629

Oui http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

Edit : c'est clairement faux. Gauche pour les commentaires utiles ci-dessous.

1 votes

La réponse à votre question est Non comme @Tim l'a mentionné. La page citée indique simplement que si les appsettings ne peuvent pas être chargés, une exception est levée. Mais si une valeur n'est tout simplement pas présente dans les appsettings, vous n'obtiendrez pas d'exception. Cela n'aurait vraiment aucun sens de lancer une erreur juste parce qu'une valeur n'existe pas dans un dictionnaire. Mais si le dictionnaire n'existait pas, ce serait une raison de lancer une erreur. (Le terme dictionnaire a juste été utilisé pour faire référence à une collection arbitraire).

0 votes

Ce lien indique qu'une exception est levée si l'option NameValueCollection n'a pas pu être trouvé - c'est-à-dire que le système n'a pas pu trouver cualquier paramètres. Les collections de valeurs de nom ne lèvent pas une exception lorsque vous essayez de récupérer une valeur unique qui n'existe pas .

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