Obsługa wyjątków
|
|
[początek strony]
-
-
Standardowe klasy wyjątków:
-
CMemoryException, CFileException,
CArchiveException, CNotSupportedException, CResourceException,
CDaoException, CDBException, COleException,
COleDispatchException, CUserException
Funkcje MFC do zgłaszania wyjątków:
-
AfxThrowArchiveException,
AfxThrowFileException, AfxThrowMemoryException,
AfxThrowNotSupportedException, AfxThrowResourceException,
AfxThrowDAOException, AfxThrowDBException, AfxThrowOleException,
AfxThrowOleDispatchException, AfxThrowUserException
-
AfxAbort
- powoduje przerwanie pracy programu
- wołana jest przy wystąpieniu wyjątku, który nie może
zostać obsłużony
-
Makra MFC do obsługi wyjątków:
-
TRY
- blok kodu, w którym mogą wystąpić wyjątki
-
CATCH( exception_class, exception_object_pointer_name )
- złapanie wyjątku z bloku TRY
- drugi parametr jest wskaźnikiem do obiektu, który zostanie
utworzony (będzie dostępny tylko w bloku CATCH)
- jako exception_class można podać CException
i sprawdzać przy pomocy funkcji IsKindOf
-
CATCH_ALL( exception_object_pointer_name
)
- wyłapanie wszystkich wyjątków z bloku TRY
- blok musi być zakończony END_CATCH_ALL
-
AND_CATCH( exception_class, exception_object_pointer_name
)
- następujące po CATCH rozszerzenie możliwości tamtego
bloku
-
AND_CATCH_ALL( exception_object_pointer_name )
- zwykle stosowane jest CATCH dla złapania wyjątku
jednego typu i AND_CATCH_ALL dla złapania reszty
-
END_CATCH
- zakończenie bloku CATCH i AND_CATCH
-
END_CATCH_ALL
- zakończenie bloku CATCH_ALL i AND_CATCH_ALL
-
THROW( exception_object_pointer
)
- zgłoszenie wyjątku
- parametrem musi być wskaźnik do obiektu dziedziczącego z CException
-
THROW_LAST()
- zgłasza obsługiwany właśnie wyjątek do zewnętrznego
bloku CATCH
[początek strony]
[początek strony]
|