try_catch_throw 与return 的合用 问题!
下面一段代码,我想返回string[]...但是当我在catch中什么也不做的时候,报错:use of unassigned local variable 'result' ;当我在catch中加入 throw 就可以,,而且只能是throw,其他的不行,,这是什么原理?请分析。谢谢!
public virtual string[] DxfReadPairs(string fileName)
{
StreamReader sr = null;
string[] result;
try
{
sr = new StreamReader(fileName, Encoding.Default);
result =new string[] { sr.ReadLine().Trim(),sr.ReadLine().Trim() };
}
catch(Exception)
{
throw;
}
finally
{
if (sr != null)
{
sr.Close();
}
}
return result;
}