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 |
---|---|
Nedostatek paměti |
|
Soubor výjimek |
|
Archiv/serializace výjimku. |
|
Odpověď na požadavek nepodporované služby |
|
Výjimka přidělení prostředků systému Windows |
|
Výjimky z databáze (třídy DAO) |
|
Výjimky z databáze (ODBC třídy) |
|
Výjimky OLE |
|
Výjimky odeslání (Automatizace) |
|
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: