分享方式:


編譯器警告 (層級 1) C4532

'continue' : 跳出 __finally/finally 區塊在終止處理期間有未定義的行為

備註

編譯器遇到下列其中一個關鍵字:

導致在異常終止期間跳出 __finallyfinally 區塊。

如果發生例外狀況,而且當堆疊在執行終止處理常式( __finally 或最後區塊)時解除復原,而您的程式碼會在區塊結束之前 __finally 跳出 __finally 區塊,則行為是未定義的。 控制項可能不會返回回溯程式碼,因此可能無法正確處理例外狀況。

如果您必須跳出 __finally 區塊,請先檢查是否有異常終止。

[啟用其他安全性檢查] 編譯器選項會將 /sdl 這個警告提升為錯誤。

範例

下列範例會產生 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;
      }
   }
}