Derived exceptions must appear before base class exceptions. : Custom Exception « Language Basics « C# / CSharp Tutorial






using System; 
 
class MyException : ApplicationException { 
  public MyException() : base() { } 
  public MyException(string str) : base(str) { } 
 
  public override string ToString() { 
    return Message; 
  } 
} 
 
class MyDerivedException : MyException { 
  public MyDerivedException() : base() { } 
  public MyDerivedException(string str) : base(str) { } 
 
  public override string ToString() { 
    return Message;  
  } 
} 
 
class MainClass { 
  public static void Main() { 
    for(int x = 0; x < 3; x++) { 
      try { 
        if(x==0) 
           throw new MyException("Caught an MyException exception"); 
        else if(x==1) 
           throw new MyDerivedException("Caught an MyDerivedException exception"); 
        else 
           throw new Exception(); 
      } 
      catch (MyDerivedException exc) { 
        // catch the exception 
        Console.WriteLine(exc); 
      } 
      catch (MyException exc) { 
        // catch the exception 
        Console.WriteLine(exc); 
      } 
      catch (Exception exc) { 
        Console.WriteLine(exc); 
      } 
    } 
  } 
}
Caught an MyException exception
Caught an MyDerivedException exception
System.Exception: Exception of type 'System.Exception' was thrown.
   at MainClass.Main()








1.24.Custom Exception
1.24.1.User-Defined Exception Classes
1.24.2.Use a custom Exception
1.24.3.Derived exceptions must appear before base class exceptions.
1.24.4.A custom exception with HelpLink and Source
1.24.5.Extends Exception
1.24.6.Create your own exception class based on Exception
1.24.7.CustomException is an application exception that supports remoting.