static void Main(string[] args) { Console.WriteLine("*****Exemple*****"); Console.WriteLine("Creating a car!!!"); Car myCar = new Car("Zippy", 20); myCar.CrankTunes(true); try { for (int i = 0; i < 10; i++) { myCar.Accelerate(-10); } } catch (CarIsDeadException ex) { Console.WriteLine("Message {0}, Time {1}, Cause {2}", ex.Message, ex.ErrorTimeStamp, ex.CauseOfError); } catch (ArgumentOutOfRangeException a) { Console.WriteLine(a.Message); } catch (Exception e) { Console.WriteLine(e.Message); } finally { myCar.CrankTunes(false); } }
static void Main(string[] args) { // Make a simple car. Console.WriteLine("***** Creating a car and stepping on it *****"); Car myCar = new Car("Zippy", 20); myCar.CrankTunes(true); // Try to rev the engine hard! try { // Uncomment to test ArgumentOutOfRangeException. // myCar.Accelerate(-10); for (int i = 0; i < 10; i++) { myCar.Accelerate(10); } } catch (CarIsDeadException e) { Console.WriteLine("\n*** Error! ***"); Console.WriteLine("Member name: {0}", e.TargetSite); Console.WriteLine("Class defining member: {0}", e.TargetSite.DeclaringType); Console.WriteLine("Member type: {0}", e.TargetSite.MemberType); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("Source: {0}", e.Source); Console.WriteLine("Stack: {0}", e.StackTrace); Console.WriteLine("Help Link: {0}", e.HelpLink); // By default, the data field is empty, so check for null. Console.WriteLine("\n-> Custom Data:"); if (e.Data != null) { foreach (DictionaryEntry de in e.Data) { Console.WriteLine("-> {0}: {1}", de.Key, de.Value); } } } catch (ArgumentOutOfRangeException e) { Console.WriteLine("Message: {0}", e.Message); } catch (Exception e) { Console.WriteLine("Message: {0}", e.Message); } finally { // This will always occur. Exception or not. myCar.CrankTunes(false); } Console.WriteLine("\n***** Out of exception logic *****"); myCar.Accelerate(10); // Will not speed up car. Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** Now with custom Exception *****"); Console.WriteLine("=> Creating a car and stepping on it!"); Car myCar = new Car("Zippy", 20); myCar.CrankTunes(true); // Speed up past the car's max speed to // trigger the exception. try { for (int i = 0; i < 10; i++) { myCar.Accelerate(10); } } catch (CarIsDeadException e) { Console.WriteLine("\n*** Error! ***"); Console.WriteLine("Method: {0}", e.TargetSite); Console.WriteLine("Message: {0}", e.Message); Console.WriteLine("Source: {0}", e.Source); } // The error has been handled, processing continues with the next statement. Console.WriteLine("\n***** Out of exception logic *****"); Console.ReadLine(); }