estoy ejecutando el código C# en Visual Studio en modo de depuración:¿Por qué Visual Studio no muestra un mensaje de excepción cuando ocurre mi excepción en un constructor estático?
public class MyHandlerFactory : IHttpHandlerFactory
{
private static Dictionary<string, bool> myDictionary = new Dictionary<string, bool>();
static MyHandlerFactory()
{
myDictionary.Add("someKey",true);
myDictionary.Add("someKey",true); // fails due to duplicate key
}
}
Fuera del constructor estático, cuando llegue a la línea con el error de Visual Studio destaca y hace estallar para arriba un mensaje acerca de la excepción . Pero en el constructor estático no recibo tal mensaje. Estoy caminando línea por línea, así que sé que estoy llegando a esa línea y no más allá.
¿Por qué es esto?
(no tengo ni idea de si el hecho de que mi clase implementa asuntos IHttpHandlerFactory, pero lo incluyó por si acaso.)
Ésta es VS2005, .Net 2.0
Editar: sólo quiero para agregar, el hecho de que es un HttpHandler does parece importar. Como indican las respuestas, el comportamiento predeterminado es romper con TypeInitializationException en lugar de con la excepción interna. Probé otro ejemplo sin el HttpHandler y vi que esto causaba que el programa se rompiera en la primera línea que usaba la clase. Pero en este caso no hay ninguna línea en mi código para romper, ya que la clase solo se llamaba como un HttpHandler especificado en mi archivo web.config. Por lo tanto, no rompió la excepción en absoluto.
Gracias por la respuesta. Sin embargo, las opciones que veo en Depurar> Excepciones ... son "Excepciones de C++", "Excepciones de Common Language Runtime", "Asistentes de depuración administrados", "Comprobaciones de tiempo de ejecución nativas" y "Excepciones de Win32". Es ".Net Exceptions" debajo de uno de estos? No pude encontrarlo –
@Tim Goodman - ¡OOPS! Quise decir "Excepciones de Common Language Runtime". Actualizaré mi respuesta. –
Ah sí, lo que hace que se rompa cuando se lanzan las excepciones de Common Language Runtime causando que se rompa la excepción interna. Gracias. –