Mega Code Archive

 
Categories / C# / Language Basics
 

Exception handle with your own exception class

/* Learning C#  by Jesse Liberty Publisher: O'Reilly  ISBN: 0596003765 */  using System;  namespace ExceptionHandling  {      // custom exception class      class MyCustomException :          System.ApplicationException      {          public MyCustomException(string message):              base(message) // pass the message up to the base class          {          }      }     public class TesterExceptionHandling     {        public void Run()        {            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 custom exception            catch (MyCustomException e)            {                Console.WriteLine(                    "\nMyCustomException! Msg: {0}",                    e.Message);                Console.WriteLine(                    "\nHelpLink: {0}\n", e.HelpLink);            }            catch     // catch any uncaught exceptions            {                Console.WriteLine(                    "Unknown exception caught");            }            finally            {                Console.WriteLine ("Close file here.");            }        }         // do the division if legal         public double DoDivide(double a, double b)         {             if (b == 0)             {                 DivideByZeroException e =                     new DivideByZeroException();                 e.HelpLink=                     "http://www.libertyassociates.com";                 throw e;             }             if (a == 0)             {                 // create a custom exception instance                 MyCustomException e =                     new MyCustomException(                     "Can't have zero divisor");                 e.HelpLink =                     "http://www.libertyassociates.com/NoZeroDivisor.htm";                 throw e;             }             return a/b;         }         static void Main()         {             Console.WriteLine("Enter Main...");             TesterExceptionHandling t = new TesterExceptionHandling();             t.Run();             Console.WriteLine("Exit Main...");         }     }  }