Предупреждение компилятора (уровень 1) C4297
функция: ожидается, что функция не будет выдавать исключения, но она это делает
Функция содержит объявление nothrow и один или более операторов throw. Чтобы устранить ошибку C4297, не пытайтесь вызвать исключения в функциях, которые объявлены при помощи nothrow, или удалить спецификацию nothrow.
Дополнительные сведения о спецификации исключений см. в разделе Спецификации исключений. Для дополнительных сведений об изменении поведения обработки исключений во время компиляции см. раздел Параметр /EH (модель обработки исключений).
Это предупреждение также генерируется для функций __declspec(dllexport), помеченных как функции только для "C", даже если они являются функциями C++ functions.
Следующий пример приводит к возникновению ошибки C4297:
// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1() // declared nothrow
// try the following line instead
// void f1()
{
throw 1; // C4297
}