Мне нужно стандартизировать, как классифицировать и обрабатывать ошибки/исключения «изящно».Стандартизованная классификация ошибок и обработка
В настоящее время я использую процесс, с помощью которого я сообщаю об ошибках функции, передающей номер ошибки, код серьезности, информацию о местоположении и дополнительную информацию. Эта функция возвращает логическое значение true, если ошибка является фатальной, и приложение должно умереть, иначе false. В рамках своего процесса, помимо визуальной обратной связи с пользователем, функция также допускает ошибки log-to-file над уровнем серьезности.
Номер ошибки индексирует массив строк, объясняющий тип ошибки, например: «Доступ к файлам», «Пользовательский ввод», «Создание потоков», «Доступ к сети» и т. Д. Код серьезности двоичный ИЛИ 0,1,2 или 4, 0 = информативный, 1 = user_retry, 2 = cannot_complete, 4 = cannot_continue. Location-info - это модуль &, а Extra-info - значения параметров и локальных переменных.
Я хочу сделать это стандартным способом обработки ошибок, который я могу поместить в библиотеку и повторно использовать во всех своих приложениях. В основном я использую C/C++ для Linux, но хотел бы использовать результирующую библиотеку с другими языками и платформами.
Идея заключается в расширении массива ошибок типа , чтобы указать, какой по умолчанию поведения для данного уровня серьезности, , но если это то стать мер, принятыми и не дает никаких вариантов, чтобы пользователю?
Или: должно ли такое расширение быть вспомогательным массивом , который должен выбрать пользователь ? Проблема с заключается в том, что параметры должны быть обобщены параметры, связанные с программированием, которые могут очень хорошо деформировать конечный пользователь.
Или: если каждое приложение, которое использует ошибок Lib рутинного проход вдоль его собственного массива либо ошибок или по умолчанию поведения - но это поражение цели библиотеки ...
Или: должны ли уровни серьезности быть обрабатываться в каждом приложении?
Или: что вы предлагаете? Как вы обрабатываете ошибки? Как я могу улучшить это?
На каком языке вы владеете? – 2008-09-25 05:34:24
C/C++ (в Linux) - я отвечу на редактируемый вопрос, но моя цель - библиотека, которая будет использоваться с любым языком (я также использую perl, ассемблер, php, ...) – slashmais 2008-09-25 07:18:43