編譯器警告 (層級 1) C4532
'continue' : 跳出 __finally/finally 區塊在終止處理期間有未定義的行為
備註
編譯器遇到下列其中一個關鍵字:
導致在異常終止期間跳出 __finally
或 finally
區塊。
如果發生例外狀況,而且當堆疊在執行終止處理常式( __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;
}
}
}
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: