Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"type1": En undantagshanterare för referens till matris eller funktionstyp kan inte nås, använd "type2" i stället
Anmärkningar
Hanterare av referens till matris eller funktionstyp matchar aldrig något undantagsobjekt. Från och med Visual Studio 2017 version 15.5 följer kompilatorn den här regeln och genererar en varning på nivå 4. Den matchar inte längre en hanterare av char* eller wchar_t* till en strängliteral när /Zc:strictStrings den används.
Den här varningen är ny i Visual Studio 2017 version 15.5. Information om hur du inaktiverar varningar efter kompilatorversion finns i Kompilatorvarningar efter kompilatorversion.
Example
Det här exemplet visar flera catch instruktioner som orsakar C4843:
// C4843_warning.cpp
// compile by using: cl /EHsc /W4 C4843_warning.cpp
int main()
{
try {
throw "";
}
catch (int (&)[1]) {} // C4843 (This should always be dead code.)
catch (void (&)()) {} // C4843 (This should always be dead code.)
catch (char*) {} // This should not be a match under /Zc:strictStrings
}
Kompilatorn genererar följande varningar:
warning C4843: 'int (&)[1]': An exception handler of reference to array or function type is unreachable, use 'int*' instead
warning C4843: 'void (__cdecl &)(void)': An exception handler of reference to array or function type is unreachable, use 'void (__cdecl*)(void)' instead
Följande kod undviker felet:
// C4843_fixed.cpp
// compile by using: cl /EHsc /W4 C4843_fixed.cpp
int main()
{
try {
throw "";
}
catch (int (*)[1]) {}
}