public string ReaderLine(string FileName)
{
if (!File.Exists(FileName))
return null;
Stream stream = null;
StreamReader reader = null;
string line = "";
StringBuilder sb = new StringBuilder();
try
{
stream = File.Open(FileName, FileMode.Open);
reader = new StreamReader(stream);
while ((line = reader.ReadLine()) != null)
{
sb.AppendLine(line);
}
return sb.ToString();
}
finally
{
if (stream != null)
stream.Close();
if (reader != null)
reader.Close();
}
}
public string ReaderLine(string FileName)
{
if (!File.Exists(FileName))
return null;
string line = "";
StringBuilder sb = new StringBuilder();
using (Stream stream = File.Open(FileName, FileMode.Open))
{
using (StreamReader reader = new StreamReader(stream))
{
while ((line = reader.ReadLine()) != null)
{
sb.AppendLine(line);
}
return sb.ToString();
}
}
}
不管是using還是try/finally都不會吃掉例外訊息。
後記:
由上面的演示我們可以知道
1.using跟try/finally,都不會吃掉例外訊息,因為沒有寫catch區段。
2.using是try/finally的簡易寫法。
兩者的寫法結果都一樣,就看自己喜歡什麼樣子的寫法,using的寫法看起來比較短,若只有一層我會使用,但如果有多層using(兩層以上),我就會覺得閱讀上有很大的不便,我就不會採用這樣的寫法。
原始文章出自於此
沒有留言:
張貼留言