컴파일러 경고 (수준 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;
}
}
}