AS>>Всем привет.
AS>>Ситуация следующая — разрабатывается небольшой слой кросс-платформенной абстракции (io, sync, mt etc). В который раз возник вопрос, что в каких ситуациях использовать — исключения и коды возврата ошибок.
AS>>Если есть ссылки критерии, best practice или что-нибудь подобное — будет супер.
J>boost.asio
J>все функции в двух экземплярах, одни бросают, другие (у которых есть параметр boost::system::error_code & ec) — не бросают.
J>Пример:
J>J>iterator resolve(
J> const query & q);
J>iterator resolve(
J> const query & q,
J> boost::system::error_code & ec);
J>
J>http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/reference/ip__basic_resolver/resolve.html
Ух, сильно. Нужно ли это для каждого метода — вот вопрос. Мое мнение, что для каждого метода это лишнее, и сам же буст этому пример — например, трединг, алгоритмы...
Хочется формальных критериев, когда надо только исключения, когда только результат, когда нужно, например, вот такое раздвонение интерфейса.
Спасибо за мнение, пример наводит на некоторые мысли