Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'type1': Obslužná rutina výjimky odkazu na pole nebo typ funkce je nedostupná, místo toho použijte type2.
Poznámky
Obslužné rutiny odkazu na pole nebo typ funkce se nikdy neshodují s žádným objektem výjimky. Počínaje sadou Visual Studio 2017 verze 15.5 kompilátor toto pravidlo respektuje a vyvolá upozornění na úroveň 4. Také již neodpovídá obslužné rutině char* nebo wchar_t* řetězcového literálu při /Zc:strictStrings použití.
Toto upozornění je nové v sadě Visual Studio 2017 verze 15.5. Informace o tom, jak zakázat upozornění podle verze kompilátoru, naleznete v tématu Upozornění kompilátoru podle verze kompilátoru.
Příklad
Tento příklad ukazuje několik catch příkazů, které způsobují 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
}
Kompilátor vygeneruje tato upozornění:
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
Následující kód se této chybě vyhne:
// C4843_fixed.cpp
// compile by using: cl /EHsc /W4 C4843_fixed.cpp
int main()
{
try {
throw "";
}
catch (int (*)[1]) {}
}