salut tout le monde,

j'ai un problême qui me parait étrange avec mon code c#:

voila une classe ProcessThread, dans son constructeur je l'abonne à l'évenement "configChange", qui est déclenché quand je change la configuration via un panneau de configuration sur l'interface graphique (le code ici est exécuté en parallèle).
Quand un évenement configChange survient, j'appelle la méthode OnChange qui lève une exception
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
21
22
23
24
25
 
class ProcessThread
{
public ProcessThread()
{
pagConfig.configChange += newpagConfig.ConfigChangeEventHandler(OnChange);
}
 
public void ExecuteLoop
{
try
{
// faire quelque chose
}
catch (ConfigChangeException ex)
{
// faire quelque chose d'autre
}
}
 
public void OnChange(object o, ConfigChangeEventsArgs é)
{
throw new ConfigChangeException("exception: la configuration a changé")
}
}
pendant l'exécution, je met un point d'arrèt dans le try de la méthode ExecuteLoop pour être certain d'y être rentré. à ce moment la je change ma configuration, l'évenement configChange est enclenché, je rentre dans la méthode OnChange et la j'ai le droit à un superbe message d'erreur lié à la levée de l'exception, alors que j'aurais du tomber dans le catch de ma méthode ExecuteLoop. Je ne comprend vraiment pas ou j'ai fait une erreur ...

merci.