Si consideri il seguente programma "Safe":Perché l'eccezione .net non viene rilevata?
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();
}
}
non dovrebbe mai completa con un'eccezione. Ma perché fallisce quando lo eseguo? Perché SafeMethodWillNeverThrow() lancia l'eccezione?
Prima di testare questo codice, leggere la risposta di seguito.
Eseguo il codice di cui sopra e non è stato in grado di riprodurre il problema: funziona come previsto, viene rilevata un'eccezione – sergtk
Verificare di aver abilitato il Contratto di runtime Contratti di codice per il progetto e di creare la configurazione di rilascio. Non riesco ancora a riprodurlo per favore fammi sapere la versione dei contratti di codice che stai utilizzando. Grazie –
riproducibile con 1.4.50327.0. Strano: -O – sergtk