using System; using System.Collections; class Class1 { static void Main(string[] args) { long lngResult; long lngValue = 0; try { lngResult = 8 / lngValue; } catch { Console.WriteLine("catch"); } finally { Console.WriteLine("finally"); } } }
Month: February 2011
try and catch exception
using System; using System.Collections; class Class1 { static void Main(string[] args) { long lngResult; long lngValue = 0; try { lngResult = 8 / lngValue; } catch { Console.WriteLine("catch"); } finally { Console.WriteLine("finally"); } } }
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 & 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"); } } } }
Switch Values Fall Through
/* Learning C# by Jesse Liberty Publisher: O'Reilly ISBN: 0596003765 */ using System; public class ValuesFallThrough { static void Main() { String myChoice = "NewLeft"; // switch on the string value of myChoice switch (myChoice) { case "NewLeft": Console.WriteLine( "The NewLeft members are voting Democratic."); goto case "Democrat"; case "Democrat": Console.WriteLine("You voted Democratic. "); break; case "CompassionateRepublican": // fall through case "Republican": Console.WriteLine("You voted Republican. "); Console.WriteLine("Don't you feel compassionate?"); break; case "Progressive": Console.WriteLine("You voted Progressive. "); break; default: Console.WriteLine("You did not make a valid choice."); break; } Console.WriteLine("Thank you for voting."); } }