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.");
}
}

