Структура поиска для сообщений об ошибках - PullRequest
0 голосов
/ 29 мая 2009

Мне нужно перевести строки результатов из библиотеки в исключения. Каждая строка имеет числовой код результата, затем символ конвейера, а затем дополнительные данные, специфичные для кода. Я подумываю об использовании настраиваемого исключения со свойством ResultCode и сохранении таблицы поиска строк сообщений, основанных на коде результата, который я отформатирую с помощью массива информационных сообщений, прежде чем выдать исключение. Каков хороший способ хранить эту таблицу значений int-string?

Ответы [ 2 ]

1 голос
/ 20 сентября 2009

В тех случаях, когда данные, используемые для принятия решения о том, какую ошибку вызывать, никогда не используются за пределами одного класса, оптимальным подходом является фактически жесткий код решения . Вот что такое прикладное программирование, а не системное или фреймворковое программирование. Я страдаю достаточно нарциссизма, не воображая себя божественным провайдером совершенной среды бизнес-программирования, чтобы осознавать, что иногда мой код будет использоваться только в том месте, где я его разрабатываю.

Поэтому я разработал два варианта решения этой проблемы: 1. Предлагаемый словарь строк (кодов) в качестве ключей для различных типов исключений, инициализированных в конструкторе; или же 2. Оператор switch среднего размера, с таким же жестким кодированием, как и в конструкторе выше.

В сценарии одноразового использования, который с большой вероятностью останется однократным в течение срока службы приложения, любое из перечисленного является более чем приемлемым решением; Это экономичное решение на базе YAGNI, которое позволяет мне уделять больше внимания проблемам, которые действительно требуют внимания.

1 голос
/ 29 мая 2009

Если вам нужно сохранить эти строки, которые у вас уже есть, вы должны использовать простой Dictionary<int,string>, где код ошибки - это ключ, а строка - значение.

Если вы вводите строки самостоятельно, вам следует рассмотреть возможность использования файла ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...