Скажем, вы используете библиотеку, которая возвращает коды ошибок. Вы хотите написать оболочку для библиотеки, и вы хотите обрабатывать ошибки с исключениями в коде.
Если библиотека все еще находится в разработке кем-то другим, и если коды ошибок могут меняться (могут быть новые, могут быть устаревшие, или некоторые коды ошибок могут немного изменить значение), каково было бы ваше решение справиться с этим?
Это та ситуация, в которой я сейчас. В моем случае библиотека написана на С++, и мы используем С#. Кодер библиотеки говорит, что коды ошибок могут меняться, и я должен найти способ работать с ним.
Наше начальное решение:
- Создайте XML файл с кодами ошибок в разных категориях (терминальные, входные и другие).
- Wrapper извлекает эти коды ошибок при запуске.
- Выдает соответствующее исключение, проверяя категорию кода ошибки.
Итак, скажем, метод возвращает код ошибки 100, тогда обертка проверяет категорию кода ошибки. Если это ошибка терминала, она выдает исключение ошибки терминала, если это ошибка ввода пользователя, она выдает исключение ошибки ввода пользователя.
Это должно работать, но я чувствую, что это не оптимальное решение. Я хотел бы знать, как хорошее письменное программное обеспечение предприятия обрабатывает изменения кодов ошибок.
Что вы предлагаете делать?
Изменить: Я уже задал вопрос о том, что коды ошибок будут меняться, и кодер библиотеки говорит, что код находится в разработке. Это алгоритм, поэтому даже способ, которым алгоритм работает, изменяется как его оригинальное исследование (он пишет на него кандидатскую диссертацию). Поэтому он говорит, что могут быть разные ошибки, или некоторые могут быть неактуальны в будущем.