Use final to deal with custom Exceptions
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"); } } }
1. | illustrates a try, catch, and finally block | ||
2. | Demonstates the possible uses of a finally block | ||
3. | Exception with finally | ||
4. | Exception handle with finally | ||
5. | Use finally | ||
6. | Exception Handling Finally |