Mise à jour: J'ai déposé un rapport de bogue sur Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/details/568271/debugger-halting-on-exception-thrown-inside-methodinfo-invoke#detailsL'exception uncatchable, pt 2
Si vous pouvez reproduire ce problème sur votre machine, s'il vous plaît upvote le bug peut donc être réglé!
Ok je l'ai fait quelques tests et j'ai réduit le problème à quelque chose de très simple:
i. Créez une méthode dans une nouvelle classe qui lève une exception:
public class Class1 {
public void CallMe() {
string blah = null;
blah.ToLower();
}
}
ii. Créez un MethodInfo qui pointe vers cette méthode ailleurs:
Type class1 = typeof(Class1);
Class1 obj = new Class1();
MethodInfo method = class1.GetMethod("CallMe");
iii. Enveloppez un appel à Invoke() dans un bloc try/catch:
try {
method.Invoke(obj, null); // exception is not being caught!
} catch {
}
iv. Exécutez le programme sans le débogueur (fonctionne bien).
v. Exécutez maintenant le programme avec le débogueur. Le débogueur arrêtera le programme lorsque l'exception se produit, même si elle est enveloppée dans un gestionnaire catch qui essaie de l'ignorer. (Même si vous placez un point d'arrêt dans le bloc catch, il s'arrêtera avant qu'il ne l'atteigne!)
En fait, l'exception se produit lorsque vous l'exécutez sans le débogueur. Dans un projet de test simple, il est ignoré à un autre niveau, mais si votre application a une gestion globale des exceptions, elle se déclenchera également.
[voir les commentaires]
Cela me cause un vrai casse-tête, car il maintient le déclenchement de mon gestionnaire d'accident de l'application, sans parler de la douleur, il est de tenter de déboguer.
+1 causes que vous avez pris le temps de réduire ce dans un exemple sain d'esprit –
Voir ici : http://stackoverflow.com/questions/2724703/why-does-vs2010-always-break-on-exception-from-methodinfo-invoke –
Avez-vous activé l'exception en tant que 'stop when throw' dans Visual Studio? ce comportement, allez à Debug | Exceptions et décochez stop sur throw. –