Я создал класс, который анализирует какой-то документ из файла.
class Parser
{
public Parse(string fileName)
{
///
}
}
Иногда могут быть ошибки синтаксического анализа, в этом случае синтаксический анализатор имеет чтобы вернуть определенные данные. Я создал для этого специальный класс.
class ParsingError
{
// some data
}
Как правильно бороться с такими ошибками. У меня есть как минимум два варианта:
создать собственное исключение или возвращаемое значение.
Вариант первый
myParser.Parse(fileName, out error);
Второй вариант
try
{
myParser.Parse(fileName)
}
catch(MyParsingException ex)
{
// use ex.Error field
}
ОБНОВЛЕНИЕ
Если я не ошибаюсь, идеология исключения состоит в том, что оно должно иметь дело с чем-то исключительным, это ситуация, для которой этот метод не предназначен.
Это заставляет меня задаться вопросом, например:
синтаксический анализатор находит неизвестное поле в файле или кодировка неправильная
будет ли это считаться исключительным случаем?