Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.07.2009, 12:16

wxWidgets Exceptions

Ich möchte in meiner wxWidgets Applikation Exceptions benutzen, wenn etwas schief gelaufen ist. Da ein Vorteil von Exceptions ist, dass man alles relativ zentral behandeln kann, würde ich das gerne für alle Events an einer Stelle erledigen.
Also hab ich mich mal schlau gemacht:
http://docs.wxwidgets.org/trunk/overview_exceptions.html
http://docs.wxwidgets.org/trunk/classwx_app_console.html#78a6f9e56b77addf8251f0f5c10004fb

Und daraufhin folgenden Code zusammengebastelt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class MrlViewer : public wxApp
...


virtual void HandleEvent(wxEvtHandler *handler, wxEventFunction func, wxEvent &event);


void MrlViewer::HandleEvent(wxEvtHandler *handler, wxEventFunction func, wxEvent &event)
{
    try
    {
        wxAppConsole::HandleEvent(handler, func, event);
    }
    catch(std::exception &ex)
    {
        wxMessageBox(boost::diagnostic_information(ex), "An exception occured");
    }
    catch(...)
    {
        wxMessageBox("unbekannte ausnahme!", "just a test");
    }
}

Leider wird das aber irgendwie niemals aufgerufen. Die einzige mögliche Ursache, die ich finden konnte war, dass wxUSE_EXCEPTIONS nicht definiert ist, das ist aber alles korrekt eingestellt.

Außerdem finde ich es ziemlich albern, dass, wenn VC Express im Debugger eine ungefangene Exception findet, er mir eine ziemlich wirre Codestelle zeigt und nicht die, wo die Exception per throw geworfen wurde. Kann man das ändern, oder macht das Sinn so?
Lieber dumm fragen, als dumm bleiben!

2

30.07.2009, 15:57

Hm, Mist, hab das const vergessen und daher die Funktion nicht überladen^^
Lieber dumm fragen, als dumm bleiben!