Sdílet prostřednictvím


Zpracování výjimek v MFC

Tento článek vysvětluje mechanismus zpracování výjimek v MFC.K dispozici jsou dva mechanismy:

  • C++ výjimky v MFC verze 3.0 a vyšší

  • MFC makra výjimku v MFC verze 1.0 a vyšší

Pokud píšete nové aplikace pomocí MFC, použijte mechanismus C++.Pokud aplikace již používá tento mechanismus rozsáhlé, můžete použít mechanismus založený na makro.

Můžete snadno převést existující kód použít místo makra výjimku MFC C++ výjimky.V článku jsou popsány výhody převod kódu a pokyny pro to Výjimky: Převod z makra výjimku MFC.

Pokud jste již vytvořili aplikace pomocí makra MFC výjimky, můžete nadále používat tato makra v existující kód, při použití C++ výjimky v nový kód.V článku Výjimky: Změny maker výjimku ve verzi 3.0 poskytuje pokyny pro to.

[!POZNÁMKA]

Chcete-li povolit zpracování v kódu jazyka C++ výjimek, vyberte na stránce generování kódu v C/C++ složce projektu povolit výjimky C++ Stránky vlastností (C++) dialogové okno nebo použít možnost kompilátoru /GX.Výchozí hodnota je /GX–, který zakazuje zpracování výjimek.

Tento článek obsahuje následující témata:

  • Použití výjimky

  • Podpora výjimek MFC

  • Další čtení o výjimkách

Použití výjimky

Tři kategorie výsledků může dojít při volání funkce při provádění programu: Normální spuštění, spuštění chybné nebo abnormální spuštění.Každá kategorie je popsáno níže.

  • Normální spuštění

    Funkce může spustit normálně a vrátit.Některé funkce vrátit kód výsledku volající, označuje výstup funkce.Kódy výsledků přesně definovaných pro funkci a představují rozsah možných výsledků funkce.Kód výsledku lze označit úspěch nebo selhání nebo dokonce můžete označit konkrétní typ selhání, které je v rámci běžné očekávání.Funkce stav souboru lze například vrátit kód, který označuje, že soubor neexistuje.Poznámka: pojem "kód chyby" se nepoužívá, protože kód výsledku představuje jednu z mnoha očekávaných výsledků.

  • Chybné provedení

    Volající díky některé chyby v předávání argumentů funkce nebo volání funkce v kontextu nevhodné.Tato situace způsobuje chybu a by měla být zjištěný nepravdivých během vývoje aplikace.(Další informace o tvrzení, viz Tvrzení.)

  • Abnormální spuštění

    Zahrnuje provádění mimořádných situací, kde jsou podmínky mimo kontrolu programu, jako je například nedostatek paměti nebo vstupně-výstupní chyby ovlivňující výsledek funkce.Zachycení a výjimky má zpracovat neobvyklých situací.

Použití výjimky je zvláště vhodná pro spuštění abnormální.

Podpora výjimek MFC

Používat výjimky C++ přímo nebo pomocí makra výjimku MFC, použití Třída CException nebo CException-odvozené objekty, které může být vyvolána, rámci nebo aplikace.

Následující tabulka zobrazuje předdefinované výjimky podle MFC.

Třída výjimek

Význam

Třída CMemoryException

Nedostatek paměti

Třída CFileException

Soubor výjimek

Třída CArchiveException

Archiv/serializace výjimku.

Třída CNotSupportedException

Odpověď na požadavek nepodporované služby

Třída CResourceException

Výjimka přidělení prostředků systému Windows

Třída CDaoException

Výjimky z databáze (třídy DAO)

Třída CDBException

Výjimky z databáze (ODBC třídy)

Třída COleException

Výjimky OLE

Třída COleDispatchException

Výjimky odeslání (Automatizace)

Třída CUserException

Výjimku, která upozorní uživatele se zprávou pak vyvolá obecnýTřída CException

[!POZNÁMKA]

MFC podporuje výjimky C++ a makra MFC výjimku.MFC přímo nepodporuje strukturovaného systému Windows NT obsluhy výjimky (SEH), jak je popsáno v Strukturované zpracování výjimek.

Další čtení o výjimkách

Následující články popisují použití knihovny MFC pro předání výjimku:

Následující články porovnat makra MFC výjimku s výjimkou klíčových slov jazyka C++ a vysvětluje, jak lze přizpůsobit kódu:

Viz také

Referenční dokumentace

Zpracování výjimek v C++

Další zdroje

Jak I: vytvoření vlastních tříd výjimek vlastní?