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#, Second 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.