У меня есть следующий код.Обработка исключений?
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
работы. Не является ли эталонная переменная объекта и работает ли она только после того, как мы назначим их объекту, например Exception ex = new Exception
?
Слишком много вопросов. Чтение документации и хорошее начало C# book - это то, где вы должны начать. –