Zpracování výjimek v prostředí MFC
Tento článek vysvětluje mechanismus zpracování výjimek, které jsou k dispozici v knihovně MFC.K dispozici jsou dva mechanismy:
Výjimky C++ k dispozici v MFC verze 3.0 a novější
MFC makra výjimka k dispozici v MFC verze 1.0 a vyšší
Pokud píšete novou aplikaci knihovny MFC, měli byste použít mechanismus C++.Můžete makro na základě mechanismu aplikace již široce používá tento mechanismus.
Snadno lze převést existující kód pro použití výjimky C++ namísto výjimky maker knihovny MFC.V článku jsou popsány výhody převodu kód a pokyny pro to Výjimky: Převádění z maker výjimek prostředí MFC.
Pokud jste již vytvořili aplikaci pomocí maker knihovny MFC výjimky, můžete pokračovat v použití těchto maker v existujícím kódu, při použití výjimky C++ nový kód.V článku Výjimky: Změny maker pro výjimky ve verzi 3.0 dává pokyny pro to.
[!POZNÁMKA]
Ve svém kódu pro zpracování výjimek C++ povolit, zaškrtněte povolit výjimky C++ na stránce generování kódu ve složce C/C++ projektu Stránky vlastností (Visual 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
Výjimka podpory knihovny MFC
Další čtení o výjimkách
Použití výjimky
Tři kategorie výsledky může dojít, pokud je volána 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ána níže.
Normální spuštění.
Funkce může spustit normálně a vrátit.Některé funkce kód výsledku vrátit volajícímu, který označuje výsledek funkce.Kódy z výsledků jsou přesně definovány funkce a rozsah možných výsledků funkce představují.Kód výsledku lze označuje úspěch nebo neúspěch nebo dokonce můžete určit konkrétní typ selhání, které je v rámci normální očekávání.Funkce stav souboru může například vrátit kód, který označuje, že soubor neexistuje.Všimněte si, že termín "kód chyby" není použita, protože kód výsledku představuje jednu z mnoha očekávaných výsledků.
Chybné provedení
Volající provádí některé chyby v předávání argumentů do funkce nebo zavolá funkci v kontextu nevhodné.Tato situace způsobuje chybu a zjišťovaných uvedením nepravdivých během vývoje aplikace. (Další informace o tvrzení, viz Kontrolní výrazy jazyka C/C++.)
Neobvyklé provedení
Neobvyklé provedení zahrnuje situace, kde jsou podmínky vně ovládacího prvku programu, jako je nedostatek paměti nebo vstupně-výstupní chyby ovlivňující výsledek funkce.Neobvyklých situací má být zpracována lov a vyvolání výjimky.
Použití výjimky je zvláště vhodné pro abnormální spuštění.
Výjimka podpory knihovny MFC
Zda použít výjimky C++ přímo nebo pomocí maker knihovny MFC výjimka, použijte Třída CException nebo CException-odvozené objekty, které mohou být vyvolány v rámci nebo aplikace.
Následující tabulka zobrazuje předdefinované výjimky poskytnuté knihovnou MFC.
Třída výjimek |
Význam |
---|---|
Z důvodu nedostatku paměti |
|
Soubor výjimek |
|
Archiv/serializace výjimku. |
|
Odpověď na požadavek služby není podporován |
|
Výjimka přidělení prostředků systému Windows |
|
Vyjímky databáze (třídy rozhraní DAO) |
|
Vyjímky databáze (třídy rozhraní ODBC) |
|
Výjimky OLE |
|
Výjimky dispatch (Automatizace) |
|
Výjimka, která upozorní uživatele se okno se zprávou a potom vyvolá obecnouTřída CException |
[!POZNÁMKA]
MFC podporuje výjimky C++ a MFC makra výjimku.MFC přímo nepodporuje Windows NT strukturované obslužné rutiny výjimek (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ávání výjimek:
V následujících článcích porovnat výjimky maker knihovny MFC s klíčovými slovy výjimky C++ a popisují, jak lze přizpůsobit váš kód:
Viz také
Referenční dokumentace
Zpracovávání výjimek v jazyce C++