Zpracování výjimek v MSVC

Výjimka je chybový stav, nacházející se případně i mimo řízení programu, který brání programu pokračovat dle jeho pravidelné cesty spuštění. Některé operace, včetně vytváření objektů, vstupu a výstupu souboru a volání funkcí provedených z jiných modulů, jsou všechny potenciální zdroje výjimek, i když je program spuštěn správně. Robustní kód je na výjimky připraven a zpracovává je. K detekci chyb logiky použijte kontrolní výrazy místo výjimek (viz Použití kontrolních výrazů).

Druhy výjimek

Kompilátor Microsoft C++ (MSVC) podporuje tři druhy zpracování výjimek:

  • Zpracování výjimek jazyka C++

    U většiny programů C++ byste měli použít zpracování výjimek jazyka C++. Je to typově bezpečné a zajišťuje, aby se destruktory objektů vyvolaly během odvíjení zásobníku.

  • Strukturované zpracování výjimek

    Systém Windows poskytuje vlastní mechanismus výjimek, označovaný jako strukturované zpracování výjimek (SEH). Nedoporučuje se pro programování C++ nebo MFC. Používejte SEH pouze v programech jazyka C jiných než MFC.

  • Výjimky MFC

    Od verze 3.0 používá mfc výjimky jazyka C++. Stále podporuje starší makra zpracování výjimek, která se podobají výjimkám jazyka C++. Informace o kombinování maker MFC a výjimek jazyka C++ naleznete v tématu Výjimky: Použití maker MFC a výjimek jazyka C++.

Pomocí možnosti kompilátoru /EH určete model zpracování výjimek, který se má použít v projektu C++. Standardní zpracování výjimek C++ (/EHsc) je výchozí v nových projektech C++ v sadě Visual Studio.

Nedoporučujeme kombinovat mechanismy zpracování výjimek. Nepoužívejte například výjimky C++ se strukturovaným zpracováním výjimek. Použití zpracování výjimek jazyka C++ výhradně zpřístupňuje kód a umožňuje zpracovávat výjimky libovolného typu. Další informace o nevýhodách strukturovaného zpracovánívýjimekch

V této části

Viz také

Referenční dokumentace
jazyka C++ x64 zpracování
výjimek (C++/CLI a C++/CX)