mickbristol78
-
9 mai 2013 à 20:29
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 2021
-
13 mai 2013 à 11:18
Bonjour, j'ai la methode suivante
private void loadSettingsFile()
{
try
{
xSettingsDoc.Load(PathSettingsfile);
listBoxMessages.Items.Add("(" + DateTime.Now + ") " + "Settings.xml loaded properly");
}
catch (System.Exception ex)
{
MessageBox.Show("Error: "Settings.xml" can not be found!\r\nYou must copy a valid Settings.xml file in the executable folder.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}
mon probleme est;
1_ si le fichier existe, mon programme va quand meme executer le catch !!?
2_ si je supprime le fichier, le programme vas bien aller dans le catch apres le .load, mais le application.exit(); ne fait pas quitter le programme !
si je remplace l'exception par
catch (FileNotFoundException excep)
alors du coup ca a l'air de marcher mais j'ai une erreur sur mon
listBoxMessages.Items.Add("(" + DateTime.Now + ") " + "Settings.xml loaded properly");
qui dit
Additional information: Object reference not set to an instance of an object.
salut moi, je pense que j'ai trouvé tu vas etre content...
j'ai trouvé mais je sais pas trop expliquer pourquoi...
Ma methode etait appellée depuis le constructeur Form1(), juste apres l'initialisation des composants, mais avant d'autre methodes.
Si je comprends bien, cela veut dire que le application.exit() va effectivement terminer l'application, mais apres avoir fini le constructeur?
j'ai deplacé ma methode sur mon Form1_load() est tout marche..
je ne coche pas tout de suite "reponse acceptée" car j'aimerai bien que qq un m'explique un peu plus le probleme que j'avait.
pourquoi a cette position, le catch n'est effectuer quand il doit etre excecuté, si ma methode etait appellé a partir du constructeur, alors le catch etait appellé a chaque fois ?
merci a tout ceux qui veulent passer qq minutes a m'expliquer, mais aussi merci a moi
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 13 mai 2013 à 11:18
Bonjour,
tout simplement tu ajoutais à listboxmessage des items alors qu'il n'existait pas.
Si tu agis sur des composants graphiques de ton interface, il faut le faire, comme tu l'as trouvé, dans la fonction load.