Я читаю данные из файла и создаю объекты на основе этих данных.Формат данных не находится под моим контролем и иногда поврежден.Каков наиболее подходящий способ обработки этих ошибок при построении объектов в C #?
В других языках программирования я возвратил значение NULL, но это не похоже на вариант с C #.
Мне удалось выяснить следующие параметры, но я был бы признателен за советы более опытных программистов на C #:
Вариант 1. Считайте файл внутри конструктора и выведите исключение, когдаисходные данные повреждены:
try
{
obj = Constructor(sourceFile);
... process object ...
}
catch (IOException ex)
{
...
}
Вариант 2. Создайте объект, затем используйте метод для чтения данных из исходного файла:
obj = Constructor();
obj.ReadData(sourceFile);
if (obj.IsValid)
{
... process object ...
}
или, возможно,генерировать исключения при ошибке:
obj = Constructor();
try
{
obj.Read(sourceFile);
... process object ...
}
catch
{
...
}
Вариант 3. Создать объект с использованием статического метода TryParse:
if (ObjClass.TryParse(sourceFile, out obj))
{
... process object ...
}
и, если да, следует ли реализовать вариант 3внутренне используя вариант 1?
public static bool TryParse(FileStream sourceFile, out ObjClass obj)
{
try
{
obj = Constructor(sourceFile);
return true;
}
catch (IOException ex)
return false;
}