Mega Code Archive

 
Categories / C# / Language Basics
 

Derived exceptions must appear before base class exceptions

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Derived exceptions must appear before base class exceptions.    using System;    // Create an exception.  class ExceptA : ApplicationException {    public ExceptA() : base() { }    public ExceptA(string str) : base(str) { }      public override string ToString() {      return Message;    }  }    // Create an exception derived from ExceptA  class ExceptB : ExceptA {    public ExceptB() : base() { }    public ExceptB(string str) : base(str) { }      public override string ToString() {      return Message;     }  }    public class OrderMatters {    public static void Main() {      for(int x = 0; x < 3; x++) {        try {          if(x==0) throw new ExceptA("Caught an ExceptA exception");          else if(x==1) throw new ExceptB("Caught an ExceptB exception");          else throw new Exception();        }        catch (ExceptB exc) {          // catch the exception          Console.WriteLine(exc);        }        catch (ExceptA exc) {          // catch the exception          Console.WriteLine(exc);        }        catch (Exception exc) {          Console.WriteLine(exc);        }      }    }  }