Throw exception from getter

using System;

public class MyValue {
public String Name;
}

class CardDeck {
private MyValue[] Cards = new MyValue[52];

public MyValue GetCard(int idx) {
if ((idx >= 0) && (idx <= 51)) return Cards[idx]; else throw new IndexOutOfRangeException("Invalid Card"); } public static void Main(String[] args) { try { CardDeck PokerDeck = new CardDeck(); MyValue HiddenAce = PokerDeck.GetCard(53); } catch (IndexOutOfRangeException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } finally { // Cleanup code } } } [/csharp]

Throw and catch Exception

   
 

using System;

class ExceptionThrower {
    static void MethodOne() {
        try {
            MethodTwo();
        } finally { }
    }

    static void MethodTwo() {
        throw new Exception("Exception Thrown in Method Two");
    }

    public static void Main(String[] args) {
        try {
            ExceptionThrower FooBar = new ExceptionThrower();
            MethodOne();
        } catch (Exception e) {
            Console.WriteLine(e.Message);
        } finally {
            // Cleanup code
        }
    }
}

    


Exception Translation: CLR catches an exception and rethrows a different exception. The inner exception contains the original exception.

   
 

using System;
using System.Reflection;


public class MyClass {
    public static void MethodA() {
        Console.WriteLine("MyClass.MethodA");
        throw new Exception("MethodA exception");
    }
}

public class Starter {
    public static void Main() {
        try {
            Type zType = typeof(MyClass);
            MethodInfo method = zType.GetMethod("MethodA");
            method.Invoke(null, null);
        } catch (Exception except) {
            Console.WriteLine(except.Message);
            Console.WriteLine("original: " + except.InnerException.Message);
        }
    }
}

    


Switch based console menu


   

/*
C# Programming Tips &amp; Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
namespace nsSwitch
{
    using System;
    public class nsSwitch
    {
        static void Main ()
        {
            bool done = false;
            do
            {
                clsAnimal dog = new clsAnimal (1);
                clsAnimal cat = new clsAnimal (2);
                clsAnimal goldfish = new clsAnimal (3);
                clsAnimal aardvark = new clsAnimal (4);
                Console.WriteLine ("Select one of the following:");
                Console.WriteLine ("	1 -- For dogs");
                Console.WriteLine ("	2 -- For cats");
                Console.WriteLine ("	3 -- For goldfish");
                Console.WriteLine ("	4 -- For aardvarks");
                Console.Write ("Enter Your selection (0 to exit): ");
                string strSelection = Console.ReadLine ();
                int iSel;
                try
                {
                    iSel = int.Parse(strSelection);
                }
                catch (FormatException)
                {
                    Console.WriteLine ("
What?
");
                    continue;
                }
                Console.WriteLine ("You selected  " + iSel);
                switch (iSel)
                {
                    case 0:
                        done = true;
                        break;
                    case 1:
                        Console.WriteLine (dog);
                        break;
                    case 2:
                        Console.WriteLine (cat);
                        break;
                    case 3:
                        Console.WriteLine (goldfish);
                        break;
                    case 4:
                        Console.WriteLine (aardvark);
                        break;
                    default:
                        Console.WriteLine ("You selected an invalid number: {0}
", iSel);
                        continue;
                }
                Console.WriteLine ();
            } while (!done);

            Console.WriteLine ("
Goodbye!");
        }
    }
    class clsAnimal
    {
        public clsAnimal (int Type)
        {
            PetType = Type;
        }
        private int Type;
        public int PetType
        {
            get {return (Type);}
            set {Type = value;}
        }
        public override string ToString()
        {
             switch (PetType)
             {
                 default:
                     return ("Unknown pet");
                 case 1:
                     return ("Your pet type is a dog");
                 case 2:
                     return ("Your pet type is a cat");
                 case 3:
                     return ("Your pet type is a goldfish");
                 case 4:
                     return ("Your pet type is an aardvark");
             }
         }
    }
}