Udostępnij za pośrednictwem


Przetwarzanie wyjątków

Gdy program wykonuje, może wystąpić wiele nietypowych warunków i błędy nazywane "wyjątkami".Mogą one obejmować, brakiem pamięci, błędy alokacji zasobów i awarii, aby znaleźć pliki.

Biblioteki Microsoft Foundation Class używa schematu obsługi wyjątków jest modelowana ściśle po jednym zaproponowanych przez Komitet normy ANSI c++.Przed wywołanie funkcji, które mogą wystąpić anormalnej sytuacji należy ustawić obsługi wyjątków.Jeśli funkcja napotka nienormalny stan, to zgłasza wyjątek i sterowanie jest przekazywane do obsługi wyjątków.

Kilka makr dołączonych do biblioteki Microsoft Foundation Class skonfiguruje procedur obsługi wyjątków.Wiele innych funkcji globalnych pomóc generują wyjątki specjalistycznych i kończy programów, jeśli to konieczne.Te makra i funkcje globalne dzielą się na następujące kategorie:

  • Makra wyjątek, którego struktura sieci obsługi wyjątków.

  • Funkcje rzucanie wyjątek, które generują wyjątki określone typy.

  • Zakończenie funkcji, które powodują zakończenie programu.

Aby uzyskać więcej informacji i przykłady, zobacz artykuł Wyjątki.

Wyjątek makra

SPRÓBUJ

Wyznacza blok kodu dla wyjątek podczas przetwarzania.

CATCH

Wyznacza blok kodu dla przechwytywanie wyjątku od poprzedniego SPRÓBUJ bloku.

CATCH_ALL

Wyznacza blok kodu do połowu wszystkie wyjątki od poprzedniego SPRÓBUJ bloku.

AND_CATCH

Wyznacza blok kodu do połowu wyjątek dodatkowe typy z poprzednim SPRÓBUJ bloku.

AND_CATCH_ALL

Wyznacza blok kodu do połowu wszystkie inne typy dodatkowe wyjątek wyrzucony w poprzednim SPRÓBUJ bloku.

END_CATCH

Kończy się ostatniego połowu lub AND_CATCH bloku kodu.

END_CATCH_ALL

Kończy się ostatniego CATCH_ALL bloku kodu.

RZUT

Zgłasza wyjątek określony.

THROW_LAST

Wyrzuca obecnie obsłużył wyjątek do następnego programu obsługi zewnętrznej.

Funkcje rzucanie wyjątek

AfxThrowArchiveException

Zgłasza wyjątek archiwum.

AfxThrowFileException

Zgłasza wyjątek plików.

AfxThrowMemoryException

Zgłasza wyjątek pamięci.

AfxThrowNotSupportedException

Zgłasza wyjątek nie obsługiwane.

AfxThrowResourceException

Zgłasza wyjątek zasobów nie można odnaleźć systemu Windows.

AfxThrowUserException

Zgłasza wyjątek w działaniu programu inicjowane przez użytkownika.

MFC udostępnia dwie funkcje rzucanie wyjątek w szczególności wyjątki OLE:

Funkcji wyjątek OLE

AfxThrowOleDispatchException

Zgłasza wyjątek w funkcji automatyzacji OLE.

AfxThrowOleException

Zgłasza wyjątek OLE.

Do obsługi wyjątków bazy danych, bazy danych klasy zapewniają dwóch klas wyjątków, CDBException i CDaoExceptioni globalne funkcje do obsługi typów wyjątków:

Funkcje wyjątek DAO

AfxThrowDAOException

Wyrzuca CDaoException z własnego kodu.

AfxThrowDBException

Wyrzuca CDBException z własnego kodu.

MFC zawiera funkcję następujące rozwiązania:

Funkcje zakończenia

AfxAbort

O nazwie zakończyć aplikację, jeśli błąd krytyczny występuje.

Zobacz też

Informacje

Klasa CException

Koncepcje

Makra i funkcje globalne MFC