using System; public class ConstructorException : Exception { public ConstructorException(object origin) : this(origin, null) { } public ConstructorException(object origin, Exception innerException) : base("Exception in constructor", innerException) { prop_Typename = origin.GetType().Name; prop_Time = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToShortTimeString(); } protected string prop_Typename = null; public string Typename { get { return prop_Typename; } } protected string prop_Time = null; public string Time { get { return prop_Time; } } } public class Starter { public static void Main() { try { MyClass obj = new MyClass(); } catch (ConstructorException except) { Console.WriteLine(except.Message); Console.WriteLine("Typename: " + except.Typename); Console.WriteLine("Occured: " + except.Time); } } } class MyClass { public MyClass() { // initialization fails throw new ConstructorException(this); } }