The following code won't work, because conn goes out of scope before you enter the catch block.
try<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
{
Connection conn = new Connection();
conn.Open();
}
catch
{
if (conn != null) conn.Close();
}
The fix is simple - just declare conn before entering the try block
Connection conn = null; // Note the assignment to null to avoid error CS0165 - Use of possibly unassigned local variable 'conn'.
try
{
conn = new Connection();
conn.Open();
}
catch
{
if (conn != null) conn.Close();
}
Of course, for this particular example, you could wrap the Connection class in one that implements IDisposable (if it does not already), so that you could then use a using statement instead of extending the scope of the local.