海鸥航迹

学习之笔记,好文之收集。

导航

[导入]How to keep a local variable in scope across a try and catch block?

The following code won't work, because conn goes out of scope before you enter the catch block.

       try

        {

            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.

 

 

[author: SantoshZ]


文章来源:http://blogs.msdn.com/csharpfaq/archive/2004/08/12/213883.aspx

posted on 2004-09-22 09:39  海天一鸥  阅读(833)  评论(1编辑  收藏  举报