Back to slide -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'  Annotated program -- Keyboard shortcut: 't'    exception/rethrowing/3/prog.cs - Raising and throwing a new exception, propagating original inner exception.Lecture 9 - slide 26 : 30
Program 3

using System;

class ExceptionDemo{

  public static void Main(){                            
    int[] table = new int[6]{10,11,12,13,14,15};
    int idx = 6;
    M(table, idx);

  public static void M(int[] table, int idx){           
    Console.WriteLine("M(table,{0})", idx);

  public static void N(int[] table, int idx){           
    Console.WriteLine("N(table,{0})", idx);             
    catch (IndexOutOfRangeException e){                                      
      // Will not/cannot handle exception here.                              
      // Raise new exception with propagation of inner exception.            
      throw new IndexOutOfRangeException("Index out of range",  e);          

  public static void P(int[] table, int idx){
    Console.WriteLine("P(table,{0})", idx);
    Console.WriteLine("Accessing element {0}: {1}", 
                       idx, table[idx]);