Exception Handling Finally
/* A Programmer's Introduction to C# (Second Edition) by Eric Gunnerson Publisher: Apress L.P. ISBN: 1-893115-62-3 */ // 04 - Exception Handling\Finally // copyright 2000 Eric Gunnerson using System; using System.IO; public class ExceptionHandlingFinally { public static void Main() { Processor processor = new Processor(); try { processor.ProcessFile(); } catch (Exception e) { Console.WriteLine("Exception: {0}", e); } } } class Processor { int count; int sum; public int average; void CalculateAverage(int countAdd, int sumAdd) { count += countAdd; sum += sumAdd; average = sum / count; } public void ProcessFile() { FileStream f = new FileStream("data.txt", FileMode.Open); try { StreamReader t = new StreamReader(f); string line; while ((line = t.ReadLine()) != null) { int count; int sum; count = Convert.ToInt32(line); line = t.ReadLine(); sum = Convert.ToInt32(line); CalculateAverage(count, sum); } } // always executed before function exit, even if an // exception was thrown in the try. finally { f.Close(); } } }