Как обрабатывать все ошибки, в том числе внутренние ошибки библиотеки C, единообразно

Я хотел обработать все внутренние ошибки изящно, без завершения программы.

Как обсуждалосьВот, с помощью_set_se_translator ловит ошибки деления на ноль.

Но это не ловит, например, ошибку библиотеки времени выполнения C-1073740777 (0xc0000417), которая может быть вызвана форматными строками дляPrintf которые имеют знак процента, где они не должны. (Это всего лишь пример; конечно, мы должны проверять наличие таких строк). Чтобы справиться с этим,_set_invalid_parameter_handler необходим.

Есть около десяти других таких обработчиков в спискеВот.

Кроме того, он будет перехватывать необработанные исключения C ++:SetUnhandledExceptionFilter, Таким образом, он может быть использован вместе с__установлен__ ... функции. (Статья оиспользуй это в MSVC 2008.)

Я хочу перехватить все без исключения ошибки, чтобы их можно было обработать (путем регистрации, выдачи современного стандартного исключения C ++ и возврата кода ошибки для конкретного приложения). Есть ли один обработчик, который ловит все?

Смотрите также это наПереполнение стека.

Я использую Visual Studio 2008.

Ответы на вопрос(2)

Ваш ответ на вопрос