Mega Code Archive

 
Categories / C# Tutorial / Language Basics
 

Derived exceptions must appear before base class exceptions

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()