šH geocities.com /Vienna/Stage/4793/excp8.htm geocities.com/Vienna/Stage/4793/excp8.htm delayed x ŁÕJ ’’’’ ’’’’’’’’’’’’’’’’Č 0¤£ L! OK text/html ĻBmo L! ’’’’ b.H Mon, 18 Dec 2000 15:42:14 GMT č Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98) en, * ŲÕJ L!
|
MFC ExceptionsDie MFC-Exception sind veraltet und Microsoft empfiehlt selbst, die Standard C++ Exceptions wo immer möglich zu nutzen. Trotzdem gibt immer noch Programme, die diese Makroerweiterung nutzen, so daß man wenigstens das Grundprinzip kennen sollte. Außerdem werden dieses MFC-Klassen wegen der Abwärtskompatibilität von Microsoft voll unterstützt. Seit der Version 3.0 nutzt Microsoft den Standard C++ Mechanismus in der MFC. Deswegen muß auch der Schalter "Enable exception handling" in den Project Settings aktiviert sein, sobald man mit der MFC arbeitet. Hier ergibt sich ein Seiteneffekt zu SEH, da man manchmal für SEH diesen Schalter ausschaltet (s.o.). Man kann also in bestimmten Situationen nicht beide Mechanismen nutzen. Microsoft sagt sogar, daß sich diese Mechanismen komplett ausschließen und nicht in einem Programm zusammen verwendet werden können. Die Erweiterung in den MFC definiert eine Familie von Makros:
Diese Makros entsprechen den C++ Exception Schlüsselwörtern try, catch und throw. Darüber hinaus bietet MFC eine
Klassenhierarchie von Exceptions, die alle den Namen CXXXException haben und von
der abstrakten Basisklasse CException abgeleitet sind. Dies ist eine Analogie zu
der Hierarchie, die Standard C++ bietet, mit der Einschränkung, daß nur von
CException abgeleitete Klassen behandelt werden können. Es gelten folgende Programmierrichtlinien:
"The
Root of all evil" - CException
|