When C# was created, they decided that C++ was wrong when it came to try-catch. Instead, they took the Java approach and used try-catch-finally. The reason C++ doesn't have this block is because it's unnecessary: since acquisition is initialization, most resources are local. They'll be cleaned up automatically, getting destructor calls as the stack unwinds. In Java and C#, no such luck; thus, finally.
Dave has been cleaning up a lot of C# code recently and found the following, excellent example of finally being used. The real question is, "Finally what?"
int changes = 0;
try
{
changes =
Server.GetData(Convert.ToInt32(Status.Pending)).Results.Count;
}
finally{}
try
{
changes += Server.GetVersion(Convert.ToInt32(Status.Pending)).Count;
}
finally{}
try
{
changes += Server.GetOrder(Convert.ToInt32(Status.Pending));
}
finally{}
if (changes > 0)
{
StringOutput += StartFont( System.Drawing.Color.Red );
}
StringOutput += changes.ToString();
If programming is a conversation, I feel like this one left me hanging.