我有以下代码。异常处理?
using System;
using System.IO;
class ExceptionHandling
{
public static void Main()
{
StreamReader streamReader = null;
try
{
streamReader = new StreamReader("C:\\Sample Files\\Data.txt");
Console.WriteLine(streamReader.ReadToEnd());
}
catch(FileNotFoundException ex)
{
Console.WriteLine("Please check if the file {0} exists",ex.FileName);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (streamReader !=null)
{
streamReader.Close();
}
Console.WriteLine("FInally Block");
}
}
}
我的问题如下:
1)StreamReader streamReader = null;
为什么StreamReader的分配为空?
2)streamReader = new StreamReader
我只是想澄清一下。 StreamReader引用变量是否指向StreamReader对象?
3)如果streamReader = new StreamReader("C:\\Sample Files\\Data.txt");
发生异常,streamReader是否仍然打开?
4)既然我们写了StreamReader streamReader = null;
不是streamReader总是为null,因此在Finally块中不可能关闭吗?
5)我不知道FileNotFoundException ex
和Exception ex
是如何工作的。是不是ex对象引用变量,并且只有当我们将它们分配给诸如Exception ex = new Exception
之类的对象时,它才会起作用?
问题太多。阅读文档和C#图书的良好开端是您应该开始的地方。 –