Exceptionhandling in MFC (insbesondere MFC for Embedded)
-
Hallo zusammen,
ich hab mal eine grundsätzliche Frage zum exceptionhandling....ich schreibe ein MFC Programm für WindowsCE...soweit so gut...jetzt wollte ich da Exceptionhandling einfrickeln...meine erste idee war, das ganz normal C++-exceptionhnadling zu nehmen, also
try { } catch (my_exception& e){ bla }
Dann hab ich was von den MFC Exceptionklassen gelesen...und schließlich von ExceptionHandling für WindowsCE unter MFC...da steht, dass man seine eigenen Exceptionklassen mit DECLARE_DYNAMIC() usw. ausstatten muß und das Handling läuft dann über die folgenden Makros:
TRY{ } CATCH (CMyException, &exc){ } END_CATCH
Jetzt bin ich mal wieder total verwirrt...muß ich jetzt das MFC-Exceptionhandling nehmen??? Kann ich auch das ganz stinknormale C++-Exceptionhandling nehmen?? oder lauern dann irgendwelche versteckten Fallen...das C++-Exceptionhandling wäre mir echt am liebsten, weil das Programm auch aus Nicht-MFC-Bestandteilen besteht...
BESTEN DANK FÜR jede ANWORT.
-
Ich arbeite mit C++ Exceptions in meinen MFC Programmen und konnte noch keine Probleme feststellen.
-
ok, danke...
ich hab grade mal probiert eine eigene con CUserException abgeleitete Klasse mit dem ganz normalen
throw CMyException(CString("Ich habe einen Fehler"));zu werfen...
Der Compiler sagt:
"Class CMyException cannot be thrown (use -W4 for more info)"....was is das denn nun schon wieder????
-
Die MFC-Makros TRY/CATCH()/... bauen afaik auf den normalen try/catch Anweisungen auf und ergänzt noch etwas Speicherverwaltung etc., aber auch in MFC-Anwendungen solltest du mit Normalen C++-Exceptions auskommen.
(PS: Ein paar Infos zum Thema findest du auch in der MSDN: Ausnahmebehandlung)
-
Die Fehlermeldung sagt mir jetzt nix, aber kannst mal in den Compiler-Optionen schauen ob Exceptions erlaubt sind. Weil im VC kann man das abstellen.