Re: api design: return code or exception - formal criteria в избранное  msdn  новое ответить всё   Оценить +1123x:) +-   подписка   модер. 
От: jazzer 
Дата: 31.08.09 12:30
Оценка:2 (1)
Здравствуйте, Andrew S, Вы писали:

AS>PS Свое мнение по данному вопросу у меня имеется В данном случае нужны именно формальные критерии, чтобы каждый конкретный случае не вызывал одинаковых вопросов.


О, я придумал формальный критерий: всегда должны использоваться исключения, потому что они обеспечивают гарантию непродолжения в случае ошибки, не давая програмисту неявно ошибиться.
Отказ от исключений и работа через коды ошибок (в любом виде, будь то возвращаемые значения или out-параметры, как в Boost.Asio) — это ручная оптимизация, которая должна применяться адекватно, как и любая другая оптимизация, т.е. после профилирования и т.п.
Это на уровне приложения.

На уровне библиотеки: поскольку библиотеке неведомо, как она будет применяться, то она должна предоставить оба интерфейса — один для 99% процентов случаев, давая наиболее чистый код пользователя, а другой — для тех мест, где надо все заоптимизировать (иначе пользователю будет неудобно — ему в этих местах придется пользоваться другой библиотекой).
jazzer
ICQ: 21891045
-----------------------------
You will always get what you always got
  If you always do  what you always did