/// <summary> /// Finally Block Usage /// </summary> private void FinallyBlockUsage() { Console.WriteLine("=> Finally Block Usage: "); MultiExceptionCar myCar = new MultiExceptionCar("Rusty", 90); myCar.CrankTunes(true); try { // Trip Arg out of range exception. myCar.Accelerate(-10); } catch (SerializedCarIsDeadException e) { Console.WriteLine(e.Message); } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e.Message); } catch { throw; } finally { // This will always occur. // Whether Exception occurs or not. myCar.CrankTunes(false); } Console.WriteLine(); }
/// <summary> /// Exception Filter Usage /// </summary> private void ExceptionFilterUsage() { Console.WriteLine("=> Exception Filter Usage: "); MultiExceptionCar myCar = new MultiExceptionCar("Rusty", 90); myCar.CrankTunes(true); try { // Trip Arg out of range exception. myCar.Accelerate(90); } catch (SerializedCarIsDeadException e) when(e.ErrorTimeStamp.DayOfWeek != DayOfWeek.Friday) { // This new line will only print if the when clause eveluates to true Console.WriteLine("Catching car is dead"); Console.WriteLine(e.Message); } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e.Message); } catch { throw; } Console.WriteLine(); }