public static void Main()
new Temp().ConditionalThrow(t => true, () => new MyException("Alberto", "25"));
Console.WriteLine(ex.Message);
new Temp().ConditionalThrow(t => true, () => new MyException());
Console.WriteLine(ex.Message);
public static TSource ConditionalThrow<TSource>(this TSource source, Func<TSource, bool> throwCondition, Func<Exception> exp)
if (throwCondition(source))
public string Name { get; set; }
public class MyException : Exception
public MyException(string name, string age)
: base($"Name: {name} and Age: {age}")