Actualización: que haya presentado un informe de error en Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/details/568271/debugger-halting-on-exception-thrown-inside-methodinfo-invoke#detailsLa excepción inalcanzable, pt 2
Si puede reproducir este problema en su máquina, por favor upvote el fallo para que pueda ser arreglado!
Ok He hecho algunas pruebas y he reducido el problema a algo muy simple:
i. Cree un método en una nueva clase que arroje una excepción:
public class Class1 {
public void CallMe() {
string blah = null;
blah.ToLower();
}
}
ii. Cree un MethodInfo que señale este método en otro lugar:
Type class1 = typeof(Class1);
Class1 obj = new Class1();
MethodInfo method = class1.GetMethod("CallMe");
iii. Ajustar una llamada a Invoke() en un bloque try/catch:
try {
method.Invoke(obj, null); // exception is not being caught!
} catch {
}
iv. Ejecute el programa sin el depurador (funciona bien).
v. Ahora ejecute el programa con el depurador. El depurador detendrá el programa cuando se produce la excepción, a pesar de que está envuelto en un controlador de captura que intenta ignorarlo. (¡Incluso si coloca un punto de interrupción en el bloque catch, se detendrá antes de alcanzarlo!)
De hecho, la excepción ocurre cuando la ejecuta sin el depurador también. En un proyecto de prueba simple, es ignorado en otro nivel, pero si su aplicación tiene algún tipo de manejo de excepción global, también se desencadenará allí.
[ver comentarios]
Esto me está causando un verdadero dolor de cabeza, ya que mantiene la activación de choque controlador de mi aplicación, por no mencionar el dolor que es tratar de depurar.
+1 causa se tomaron el tiempo para reducir esto en un ejemplo sano –
Ver aquí : http://stackoverflow.com/questions/2724703/why-does-vs2010-always-break-on-exception-from-methodinfo-invoke –
¿Ha habilitado la excepción como "detener al lanzar" en Visual Studio? este comportamiento, vaya a Depurar | Excepciones y desmarque detener en tiro. –