다음을 통해 공유


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

'continue' : 종료 처리를 수행하는 동안 __finally/finally 블록에서의 점프 동작이 정의되지 않았습니다.

컴파일러에서 다음 키워드 중 하나를 발견했습니다.

위와 같은 키워드로 인해 비정상 종료 동안 __finally 또는 finally 블록 외부로 점프합니다.

예외가 발생하여 종료 처리기(__finally 또는 finally 블록)가 실행되면서 스택이 정리되는 동안 사용자 코드에서 __finally 블록이 끝나기 전에 __finally 블록 외부로 점프하면 동작이 정의되지 않습니다. 제어가 해제 코드로 반환되지 않으므로 예외가 제대로 처리되지 않습니다.

__finally 블록에서 점프해야 한다면 먼저 비정상적으로 종료하는지 확인하십시오.

다음 코드에서는 C4532 경고가 발생하는 경우를 보여 줍니다. 점프문을 주석으로 처리하여 경고를 해결하십시오.

// C4532.cpp
// compile with: /W1
// C4532 expected
int main() {
   int i;
   for (i = 0; i < 10; i++) {
      __try {
      } __finally {
         // Delete the following line to resolve.
         continue;
      }

      __try {
      } __finally {
         // Delete the following line to resolve.
         break;
      }
   }
}