using System; using System.Runtime.Serialization; class TestDirectoryMissingException : ApplicationException { public TestDirectoryMissingException() : base() { } public TestDirectoryMissingException(string msg) : base(msg) { } public TestDirectoryMissingException(SerializationInfo info, StreamingContext cxt) : base(info, cxt) { } public TestDirectoryMissingException(string msg, Exception inner) : base(msg, inner) { } } class MainClass { static void DoStuff() { if (System.IO.Directory.Exists("c:\\test") == false) throw new TestDirectoryMissingException("The test directory does not exist"); } static void Main(string[] args) { try { DoStuff(); } catch (System.IO.DirectoryNotFoundException e1) { System.Console.WriteLine(e1.StackTrace); System.Console.WriteLine(e1.Source); System.Console.WriteLine(e1.TargetSite); } catch (System.IO.FileNotFoundException e2) { } catch (System.Exception e) { System.Console.WriteLine("Ex"); } finally { System.Console.WriteLine("final"); } } }