finally statement block is always executed.
Therefore it is a good idea to write cleanup code in the finally block.
using System;
using System.IO;
class Test
{
static void Main(string[] args)
{
StreamReader reader = null; // In System.IO namespace
try
{
reader = File.OpenText("file.txt");
if (reader.EndOfStream)
return;
Console.WriteLine(reader.ReadToEnd());
}
finally
{
if (reader != null) reader.Dispose();
}
}
}