Я пишу пользовательский .Net SDK для картографической программы MapInfo Pro, mapinfo предоставляет только два метода для использования через COM void Do(string cmd)
и string Eval(string cmd)
. Когда вы используете один из этих методов и делаете что-то вторженное, он возвращает COMException с сообщением об ошибке, и я получаю код ошибки из MapInfo. Так, например, сообщение об ошибке выглядит так:
418 "Table not found."
Теперь я хотел бы выдать какое-то значение полного исключения, а не просто исключение с числом и сообщением, которые люди должны перехватить, а затем использовать блок if
, чтобы проверить, какую ошибку они говорят, что они хотят только перехватить. и сделать что-то значащее с. Что-то вроде TableNotFoundException
.
Самая большая проблема в том, что в настоящее время 1999
возможных сообщений об ошибках, теперь я не хочу класс исключений для всех этих ошибок.
Идея SDK заключается в том, что люди используют мои объекты и методы, а не Do
и Eval
(они могут использовать их, если захотят).
Должен ли я,
- везде в моем SDK, который я называю
Do
и Eval
, используйте try catch, а затем проверьте код ошибки и выведите оттуда что-то более значимое, потому что я знаю, какие ошибки я должен получить.
или
- У меня есть список поиска Бога в
Do
и Eval
, что, когда выдается COMException
, он ищет код ошибки и выдает оттуда значимую ошибку? То есть мне не нужно заключать каждый вызов в Do
и Eval
в блоки try try (вызовов много)
Немного сложно объяснить, поэтому я надеюсь, что люди могут это понять.
Спасибо.