подумайте об этом:
StreamReader reader = null;
try
{
reader = new StreamReader(_fileName);
}
catch
{
//show error that file not found
reader.Dispose();
return false;
}
try
{
//code to read file
}
catch
{
//show error badly formed file
}
finally
{
reader.Dispose();
}
//return
код выше не работает, когда файл не может быть открыт, потому что он вызывает Dispose для null, что приводит к исключению.
Я не хочу использовать с помощью, потому что я хочу разделить проблемы с открытием файла и чтением его. Этого можно достичь миллионами разных уловов, но я не хочу идти по этому пути. Плюс, если использовать то же самое, что и try-finally, "скрытая утилизация" все равно выдаст нежелательное исключение? что будет лучшим способом, когда все, что мне нужно, это поймать исключение, открывающее его, и исключение, читающее его?
Спасибо & BR - Матти