建議使用 Visual Studio 2017

編譯器警告 (層級 1) C4532

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

'continue': 跳出 __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;  
      }  
   }  
}  

顯示: