using System; public class Tester { public static void Main() { TestError(); } static void Test(Action a) { Console.WriteLine("Action"); } static void TestError() { bool throwException = true; //Resolves to Test(Action a) Test(() => { }); //Resolves to Test(Action a) Test(() => { if (throwException) throw new Exception(); }); //Resolves to Test(Func a) (This seems like a bug since there is no return value) Test(() => { throw new Exception(); }); } }