![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Boost System LibraryBoost , ,
IntroductionУсловия ошибок, исходящие из операционной системы или других низкоуровневых интерфейсов прикладной программы (API), обычно сообщаются через целое число, представляющее код ошибки. Когда эти низкоуровневые вызовы API обернуты в портативный код, например, в портативную библиотеку, некоторые пользователи хотят иметь дело с кодами ошибок портативными способами. Другие пользователи должны получить коды ошибок системы, чтобы иметь дело с конкретными потребностями системы. Библиотека Boost System предоставляет простые, легкиеобъекты error_code, которые инкапсулируют системные значения кода ошибки, но также обеспечивают доступ к более абстрактным и портативным условиям ошибки черезerror_conditionобъекты. Поскольку объекты error_code могут представлять ошибки из источников, отличных от операционной системы, включая определяемые пользователем источники, каждый error_code и error_condition имеет соответствующуюerror_category. Предусмотрен класс исключений, system_error. Полученный из std::runtime_error, он фиксирует основной код ошибки для проблемы, вызывающей исключение, чтобы эта важная информация не была потеряна. В то время как исключения являются предпочтительным механизмом отчетности об ошибках C++ по умолчанию, пользователям библиотек, зависящим от API низкого уровня, часто требуется перегрузка условий отчетности об ошибках с помощью аргументов кода ошибки и / или значений возврата, а не с помощью исключений. В противном случае, когда ошибки не являются исключительными случаями и должны быть устранены по мере их возникновения, программы становятся заваленными блоками проб/ловли, нечитаемыми и очень неэффективными. Библиотека Boost System поддерживает как отчеты об ошибках по исключениям, так и по коду ошибок. В дополнение к портативным кодам ошибок и условиям, поддерживаемым заголовком<
Release History< Design RationaleКласс< Многие из подробных проектных решений были обусловлены требованиями, чтобы пользователи могли добавлять дополнительные категории ошибок, и чтобы писать портативный код было не сложнее, чем системный код. < HistoryN1975, Предложение библиотеки файловой системы для TR2, принятое для Технического отчета библиотеки 2 (TR2) на Берлинском совещании, включало дополнительные компоненты в дополнение к пункту о диагностике стандартной библиотеки. С тех пор эти компоненты отчетности об ошибках получили более широкое общественное внимание, и в дизайн были внесены улучшения. Усовершенствованная версия была использована N2054, Networking Library Proposal для TR2, демонстрируя, что эти компоненты отчетности об ошибках полезны за пределами исходной библиотеки файловой системы. Первоначальное предложение рассматривало категории ошибок как бинарный выбор между< AcknowledgementsКристофер Колхофф и Питер Димов внесли важный вклад в дизайн. Комментарии и предложения также были получены от Павла Возенилека, Геннаро Проты, Дэйва Абрахамса, Джеффа Гарланда, Иэна Хэнсона, Оливера Куоке и Олега Абросимова. Кристофер Колхофф предложил несколько улучшений в документе N2066. Комментарии Йохана Нильссона привели к некоторым усовершенствованиям в N2066. Пересмотрено2 июня 2014June 02, 2014 [ORIG_END] --> Авторское право Beman Dawes, 1999 Распространяется под лицензией Boost Software License, версия 1.0. (См. файлLICENSE_1_0.txtили www.boost.org/LICENSE_1_0.txt) Статья Boost System Library раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |