В зависимости от языка кодирования могут быть культурные различия?
Например, в Java числовые коды ошибок используются не очень ...
Что касается исключений, я считаю, что это всего лишь технический инструмент.
Важно то, нацелено ли ваше сообщение на пользователя или разработчика.
Для пользователя важна локализация сообщений, если появляется несколько языков, или возможность изменять сообщения без перекомпиляции (для настройки между клиентами, для адаптации к изменяющимся потребностям пользователя ...).
В моих проектах наша культура заключается в использовании (java) перечислений для обработки всех коллекций фиксированных значений.
Ошибки ничем не отличаются.
Перечисления для ошибок могут предоставить:
- строгая типизация (нельзя передать что-то еще методу, ожидающему код ошибки)
- простая локализация (простой служебный метод может автоматически находить сообщение, соответствующее каждому из них, используя, например, шаблон "SimpleClassName". "INSTANCE_NAME"; вы также можете предоставить метод getMessage () для каждого перечисления, который делегирует реализацию Ваш полезный метод)
- проверка ваших локализованных файлов (ваши модульные тесты могут зацикливаться для каждого языка в коде и файлах и находить все несопоставимые значения)
- Функциональность уровня ошибок (мы используем те же уровни, что и при ведении журнала: фатальный, ошибка, предупреждение; тогда решения по протоколированию очень легко реализуются!).
- для облегчения поиска соответствующей ошибки другими разработчиками, мы используем несколько перечислений (возможно, в одном пакете), классифицируя ошибки в соответствии с их технической или функциональной областью.
Чтобы решить ваши две проблемы:
- Добавление только одного требует добавления экземпляра в перечисление и сообщения в файле локализации (но тесты могут перехватить позднее, если они будут забыты).
- При классификации в нескольких перечислениях и, возможно, в javadoc они руководствуются правильной ошибкой.