Below is a complete example of throwing an exception from a method and catching/handling that exception further up the call stack.
Code for Dog class that throws an exception if we ask a dog to bark too many times:
public class Dog { public string Name { get; set; } public int Age { get; set; } // Dog constructor public Dog(string name, int age) { Name = name; Age = age; } // Dog.Bark public void Bark(int numTimes) { if (numTimes > 10) throw new ArgumentException( string.Format("{0} is just too many times to bark", numTimes)); for (int i = 1; i <= numTimes; i++) Console.WriteLine("Woof"); } }
Code that calls the Bark method, with an exception handler in the Main() method:
static void Main(string[] args) { try { Console.WriteLine("Before MethodA call"); MethodA(); Console.WriteLine("After MethodA call"); } catch (Exception xx) { Console.WriteLine( string.Format("Caught in Main(): {0}", xx.Message)); } Console.ReadLine(); } private static void MethodA() { Console.WriteLine("Before MethodB call"); MethodB(); Console.WriteLine("After MethodB call"); } private static void MethodB() { Dog d = new Dog("Kirby", 15); d.Bark(99); Console.WriteLine("I barked 99 times"); }
Below is the output.
Image may be NSFW.
Clik here to view.
Filed under: Exceptions Tagged: C#, catch, Exceptions, Throw Image may be NSFW.
Clik here to view.

Clik here to view.
