Warum wird die .net-Ausnahme nicht abgefangen?

Betrachten Sie das folgende "sichere" Programm:

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();
    }
}

Es sollte nie mit einer Ausnahme abgeschlossen werden. Aber warum scheitert es, wenn ich es laufen lasse? Warum löst SafeMethodWillNeverThrow () die Ausnahme aus?

Bevor Sie diesen Code testen, lesen Sie bitte die Antwort unten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage