ОК, я признаю, что этот код будет выглядеть странно для вас, и это потому, что это странно . Это просто код для воспроизведения поведения, а не код, который я хочу использовать.
class Program
{
static void Main(string[] args)
{
try
{
Activator.CreateInstance(typeof(Func<int>), new object[] { new object(), IntPtr.Zero });
}
catch
{
Console.WriteLine("This won't print!");
}
Console.Write("Actually this will not print either!");
Console.ReadLine();
}
}
Независимо от того, какой тип исключения я пытаюсь перехватить (насколько я могу судить, фактически выброшенное исключение является ArgumentException), код внутри блока catch не будет выполнен. На самом деле выполнение просто остановится на линии Activator.CreateInstance.