Exception propagation with methods : Exception « Language Basics « C# / CSharp Tutorial






using System;

class MainClass
{
  public static void Main()
  {
    Console.WriteLine("Calling AccessInvalidArrayElement()");
    AccessInvalidArrayElement();

    try
    {
      Console.WriteLine("Calling DivideByZero()");
      DivideByZero();

    } catch (DivideByZeroException e) {
      Console.WriteLine("Handling an IndexOutOfRangeException");
      Console.WriteLine("Message = " + e.Message);
      Console.WriteLine("StackTrace = " + e.StackTrace);
    }
  }

  public static void AccessInvalidArrayElement()
  {
    int[] myArray = new int[2];
    try
    {
      Console.WriteLine("Attempting to access an invalid array element");
      myArray[20] = 1;
    }
    catch (IndexOutOfRangeException e)
    {
      Console.WriteLine("Handling an IndexOutOfRangeException");
      Console.WriteLine("Message = " + e.Message);
      Console.WriteLine("StackTrace = " + e.StackTrace);
    }
  }

  public static void DivideByZero()
  {
    int zero = 0;
    Console.WriteLine("Attempting division by zero");
    int myInt = 1 / zero;
  }

}
Calling AccessInvalidArrayElement()
Attempting to access an invalid array element
Handling an IndexOutOfRangeException
Message = Index was outside the bounds of the array.
StackTrace =    at MainClass.AccessInvalidArrayElement()
Calling DivideByZero()
Attempting division by zero
Handling an IndexOutOfRangeException
Message = Attempted to divide by zero.
StackTrace =    at MainClass.Main()








1.17.Exception
1.17.1.The Exception Hierarchy
1.17.2.The System.Exception Class
1.17.3.A Closer Look at Exception
1.17.4.Using Exception members
1.17.5.Exception propagation with methods
1.17.6.An unhandled exception
1.17.7.Commonly Used Exceptions Defined Within the System Namespace
1.17.8.Handling a possible exception.