建議使用 Visual Studio 2017

編譯器錯誤 C2707

 

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

'identifier': 不正確的內容的內建函式

結構化例外狀況處理的內建函式是在特定內容中無效的︰

  • _exception_code()外部例外狀況篩選條件或__except區塊

  • _exception_info()外部例外狀況篩選條件

  • _abnormal_termination()外部__finally區塊

若要解決此錯誤,請務必例外狀況處理內建函式會放在適當的內容。

下列範例會產生 C2707。

// C2707.cpp  
#include <windows.h>  
#include <stdio.h>  
  
LONG MyFilter(LONG excode)   
{  
    return (excode == EXCEPTION_ACCESS_VIOLATION ?  
        EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH);   // OK  
}  
  
LONG func(void)   
{  
    int x, y;  
    return(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?  // C2707  
             EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH);  
  
    __try   
    {  
        y = 0;  
        x = 4 / y;  
        return 0;  
     }  
  
    __except(MyFilter(GetExceptionCode()))   
    {  
        return(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? // ok  
               EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH);  
    }  
}  
  
int main()   
{  
    __try   
    {  
        func();  
    } __except(EXCEPTION_EXECUTE_HANDLER)  
    {  
        printf_s("Caught exception\n");  
    }  
}  

顯示: