IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Gérer une erreur dans un fichier de configuration


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut Gérer une erreur dans un fichier de configuration
    Salut à tous,

    J'ai une petite appli console avec un fichier de configuration afin que l'utilisateur puisse modifier certains paramètres de l'appli sans devoir modifier le code source à chaque fois.
    L'appli est lancée à fréquence régulière via une tâche planifiée.
    J'ai donc besoin d'informer quelqu'un par mail en cas d'erreur dans l'execution, afin de corriger et relancer la tâche.
    Comme l'utilisateur (un seul et formé) peut modifier ce fichier de config, je fais des tests pour valider que tous les éléments sont bien présents dans le fichier de config.
    Or, je me dis qu'il pourrait modifier par erreur la section appsettings avec un truc du genre:
    <appSettings2>
    les paramètres
    </appSettings>
    Et c'est là que j'ai un problème (bien entendu quand il y une erreur du type mentionné ci-dessus)
    Je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
    {
    string test=ConfigurationManager.AppSettings["RC_File"];
    }
    catch
    {
    MailMessage mail = new MailMessage();
    ....
    }
    et il me lève une exception ConfigurationErrorsException (echec de l'initialisation du système de configuration) sur la ligne MailMessage.

    Comment puis-je faire pour gérer cette erreur (qui est une erreur de structure du fichier de config) ?

    J'espère que vous allez pouvoir m'aider parce que là, j'ai rien trouvé et je sèche vraiment.

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    Si tu souhaites gerer cette erreur differemment des autres exception, fais deux catch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    catch(ConfigurationErrorsException configException)
    {
    //Stopper l'execution, avertir l'utilisateur et informer l'admin de l'erreur par mail
    }
     
    catch(Exception ex)
    {
     
    }
    C'est ce que je comprend de tes attentes, je me trompe peut-etre, car ce n'est pas tres clair.

    PS : desole clavier UK

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    Merci,

    Mais en fait c'est bien çà le problème.
    J'arrive à intercepter l'erreur ConfigurationErrorsException et donc stopper l’exécution, çà c'est pas un problème.
    Mais à ce moment là (donc dans mon catch), il met l'erreur sur MailMessage.
    Je crois comprendre que s'il y a une erreur dans le fichier de config, il ne peut pas instancier MailMessage.

    Par exemple, il faudrait qu'en cas d'erreur de structure du fichier de config, il considère qu'il ne doit pas intégrer ce fichier de config dans l’exécution.
    Ou aussi, une autre approche, vérifier la structure du fichier avant.

    J'espère que c'est un peu plus clair.

  4. #4
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    Tu peux poster ton fichier de configuration ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    Voilà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="mail_adresses" value="C:\Users\fichier.csv"/>
        <add key="RC_file" value="C:\Users\fichier.csv"/>
        <add key="Mail_RQ" value="mail@mail.com"/>
        <add key="mail_object" value="Relance"/>
        <add key="mail_corps" value="Test corps"/>
      </appSettings>
    </configuration>

  6. #6
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    Peux tu également poster l'erreur et la totalité de ton catch?

Discussions similaires

  1. [Batch] modifier une ligne dans un fichier de configuration (hmailserver)
    Par amidevous dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 15/02/2013, 13h12
  2. Remplacer une ligne dans un fichier de configuration
    Par morgan47 dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2008, 13h15
  3. erreur dans le fichier de configuration
    Par amen_1919 dans le forum Installation
    Réponses: 4
    Dernier message: 14/04/2008, 19h40
  4. [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    Par iam dans le forum Bases de données
    Réponses: 9
    Dernier message: 16/04/2007, 18h24
  5. Réponses: 1
    Dernier message: 17/09/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo