Обработка ошибок с помощью CORBA

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

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

Каковы наилучшие способы справиться с этим?


person Jim Jeffries    schedule 24.08.2011    source источник
comment
Если вы проголосуете за закрытие, объясните, почему, чтобы я мог улучшить свои вопросы в будущем.   -  person Jim Jeffries    schedule 24.08.2011


Ответы (1)


Лучший способ — объявить, что ваши методы вызывают исключения, как показано ниже:

exception Unknown{};

interface Stock {

  // Returns the current stock quote.
  Quote get_quote() raises(Unknown);

  // Sets the current stock quote.
  void set_quote(in Quote stock_quote);

  // Provides the stock description, 
  // e.g. company name.
  readonly attribute string description;
};

то в большинстве случаев ваше языковое сопоставление будет переводить эти исключения в родные.

person Davorin Ruševljan    schedule 24.08.2011