Aracılığıyla paylaş


C6320

C6320 Uyarı: özel durum filtresi ifadesidir sabit EXCEPTION_EXECUTE_HANDLER.İşlenecek hedeflenmemiş özel durumlar bu maskeleyebilir

Bu uyarı, blok __except, EXCEPTION_EXECUTE_HANDLER sabitini kullanmanın bir yan etkisi gösterir.Bu durumda __except deyiminde bloke olacak istediğiniz belirli bir işlev işlemek için özel durumları da dahil olmak üzere özel durumunu işlemesi için her zaman çalıştırın.Bu işleme önce özel durum kontrol önerilir.

Örnek

Aşağıdaki kod, __except engellemek için bu uyarı oluşturur her türden özel durumlarý iþlemek deneyin:

#include <stdio.h> 
#include <excpt.h> 

void f(int *p) 
{ 
   __try
   { 
      puts("in try"); 
      *p = 13;  // might cause access violation exception
      // code ...
   } 
   __except(EXCEPTION_EXECUTE_HANDLER) // warning
   { 
      puts("in except"); 
      // code ...
   } 
} 

Bu uyarı düzeltmek için GetExceptionCode aşağıdaki kodda gösterildiği gibi işleme önce belirli bir durum olup olmadığını denetlemek için:

#include <stdio.h> 
#include <windows.h> 
#include <excpt.h> 

void f(int *p) 
{ 
   __try
   { 
      puts("in try"); 
      *p = 13;    // might cause access violation exception 
      // code ...
   } 
   __except(GetExceptionCode()==EXCEPTION_ACCESS_VIOLATION ? 
               EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
   { 
      puts("in except"); 
      // code ...
   } 
}

Ayrıca bkz.

Başvuru

deneyin-ifadesi hariç