日期:2014-05-20  浏览次数:20956 次

一个try catch finally的问题
想用try来捕获打开文件时的异常,为什么声明的     StreamReader   din;
在finally里不能使用?
应该怎么做?


                  StreamReader   din;
                        try
                        {
                                din   =   File.OpenText( "d:\\test1.txt ");
                        }
                        catch   (FileNotFoundException   ex)
                        {
                                MessageBox.Show(ex.Message);

                        }

                        finally
                        {
                                din.Close();     //为什么报   Use   of   unassigned   local   variable   'din '

                        }

------解决方案--------------------
StreamReader din;

这里还没实例化 是个空引用
------解决方案--------------------
din 应该在Try前头进行初始化
------解决方案--------------------
StreamReader din;
try
{
din = File.OpenText( "d:\\test1.txt ");
}
catch (FileNotFoundException ex)
{
MessageBox.Show(ex.Message);

}

finally
{
if (din != null)
din.Close();

}

------解决方案--------------------
楼主这样试试:
StreamReader din=null;
------解决方案--------------------
Raya 正解