Mega Code Archive

 
Categories / C# Tutorial / Language Basics
 

Extends Exception

using System; using System.Runtime.Serialization; [Serializable] public sealed class MyException : Exception {     private string stringInfo;     private bool booleanInfo;     public MyException() : base() { }     public MyException(string message) : base(message) { }     public MyException(string message, Exception inner): base(message, inner) { }     private MyException(SerializationInfo info, StreamingContext context) : base(info, context)     {         stringInfo = info.GetString("StringInfo");         booleanInfo = info.GetBoolean("BooleanInfo");     }     public MyException(string message, string stringInfo, bool booleanInfo) : this(message)     {         this.stringInfo = stringInfo;         this.booleanInfo = booleanInfo;     }     public MyException(string message, Exception inner, string stringInfo, bool booleanInfo): this(message, inner)     {         this.stringInfo = stringInfo;         this.booleanInfo = booleanInfo;     }     public string StringInfo     {         get { return stringInfo; }     }     public bool BooleanInfo     {         get { return booleanInfo; }     }     public override void GetObjectData(SerializationInfo info, StreamingContext context)     {         info.AddValue("StringInfo", stringInfo);         info.AddValue("BooleanInfo", booleanInfo);         base.GetObjectData(info, context);     }     public override string Message     {         get         {             string message = base.Message;             if (stringInfo != null)             {                 message += Environment.NewLine + stringInfo + " = " + booleanInfo;             }             return message;         }     } } public class MainClass {     public static void Main()     {         try         {             throw new MyException("Some error", "SomeCustomMessage", true);         }          catch (MyException ex)         {             Console.WriteLine(ex.Message);             Console.WriteLine(ex.BooleanInfo);             Console.WriteLine(ex.StringInfo);         }     } } Some error SomeCustomMessage = True True SomeCustomMessage