| Re: api design: return code or exception - formal criteria | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | jazzer | |
| Дата: | 31.08.09 12:30 | |
| Оценка: | 2 (1) | |
| Здравствуйте, Andrew S, Вы писали: AS>PS Свое мнение по данному вопросу у меня имеется О, я придумал формальный критерий: всегда должны использоваться исключения, потому что они обеспечивают гарантию непродолжения в случае ошибки, не давая програмисту неявно ошибиться. Отказ от исключений и работа через коды ошибок (в любом виде, будь то возвращаемые значения или out-параметры, как в Boost.Asio) — это ручная оптимизация, которая должна применяться адекватно, как и любая другая оптимизация, т.е. после профилирования и т.п. Это на уровне приложения. На уровне библиотеки: поскольку библиотеке неведомо, как она будет применяться, то она должна предоставить оба интерфейса — один для 99% процентов случаев, давая наиболее чистый код пользователя, а другой — для тех мест, где надо все заоптимизировать (иначе пользователю будет неудобно — ему в этих местах придется пользоваться другой библиотекой).
|