다음을 통해 공유


컴파일러 경고 (수준 1) C4297

'function' : 함수는 예외를 Throw하지 않도록 지정되었으나 예외를 Throw했습니다.

함수에 nothrow 선언이 있는 상태에서 throw 문을 하나 이상 사용했습니다.C4297을 해결하려면 nothrow를 사용하여 선언한 함수에서는 예외를 throw하지 않도록 만들거나 nothrow 지정을 제거하십시오.

예외 사양에 대한 자세한 내용은 예외 사양을 참조하십시오.컴파일할 때 예외 처리 동작을 수정하는 방법에 대한 자세한 내용은 /EH(예외 처리 모델)를 참조하십시오.

이 경고는 extern "C"로 표시된 __declspec(dllexport) 함수에 대해서도 생성됩니다. 이 함수가 C++ 함수일 경우에도 마찬가지입니다.

다음 샘플에서는 C4297 경고가 발생하는 경우를 보여 줍니다.

// C4297.cpp
// compile with: /W1 /LD
void __declspec(nothrow) f1()   // declared nothrow
// try the following line instead
// void f1()
{
   throw 1;   // C4297
}