Considere el siguiente programa de "seguro":¿Por qué la excepción .net no está atrapada?
internal class Safe
{
public static void SafeMethodWillNeverThrow()
{
try
{
var something = ThrowsNewException();
Func<int, string> x = p => something.ToString();
}
catch (Exception)
{
}
}
private static object ThrowsNewException()
{
throw new Exception();
}
public static void Main()
{
SafeMethodWillNeverThrow();
}
}
nunca debería completa con una excepción. ¿Pero por qué falla cuando lo ejecuto? ¿Por qué SafeMethodWillNeverThrow() arroja la excepción?
Antes de probar este código, lea la respuesta a continuación.
Ejecuto el código anterior y no pude reproducir el problema: funciona como se esperaba, se detecta una excepción – sergtk
Compruebe que tiene habilitada la comprobación de contratos de tiempo de ejecución de contratos de código para su proyecto y crea la configuración de la versión. Todavía no puedo reproducirlo, por favor, hágame saber la versión de los contratos de código que está utilizando. Gracias –
reproducible con 1.4.50327.0. Raro: -O – sergtk