Custom Exceptions
The intrinsic exception types the CLR
provides, coupled with the custom messages shown in the previous
example, will often be all you need to provide extensive information
to a catch
block when an exception is thrown.
There will be times, however, when you want to provide more extensive
information or need special capabilities in your exception. It is a
trivial matter to create your own custom
exception class; the only restriction is that it
must derive (directly or indirectly) from
System.ApplicationException
. Example 11-7 illustrates the creation of a custom
exception.
Example 11-7. Creating a custom exception
namespace Programming_CSharp { using System; public class MyCustomException : System.ApplicationException { public MyCustomException(string message): base(message) { } } public class Test { public static void Main( ) { Test t = new Test( ); t.TestFunc( ); } // try to divide two numbers // handle possible exceptions public void TestFunc( ) { try { Console.WriteLine("Open file here"); double a = 0; double b = 5; Console.WriteLine ("{0} / {1} = {2}", a, b, DoDivide(a,b)); Console.WriteLine ( "This line may or may not print"); } // most derived exception type first catch (System.DivideByZeroException e) { Console.WriteLine( "\nDivideByZeroException! Msg: {0}", e.Message); Console.WriteLine( "\nHelpLink: {0}\n", e.HelpLink); } catch (MyCustomException e) { Console.WriteLine( "\nMyCustomException! Msg: {0}", e.Message); Console.WriteLine( "\nHelpLink: {0}\n", ...
Get Programming C#, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.