Wir kämpfen hier mit dem Problem, exceptions zu fangen, die in einem Plugin geworfen wurden. Genauer:
Unser Programm besteht im wesentlichen aus einer main()-Routine, die zahlreiche Plugins lädt - die eigentliche Arbeit findet dann dort statt. Wir würden nun gern in der main-Funktion alles mit einem try/catch-Block umgeben, um alle Exceptions, die irgenwo ungefiltert durchkommen, noch abfangen zu können.
Code: Alles auswählen
int main(int argc, char** argv)
{
try
{
QApplication app;
Loader loader(&app);
QTimer::singleShot(0, &laoder, SLOT(LoadPlugins()));
app.exec();
}
catch(...)
{
// handle exception
}
};
Also die Frage: Funktionieren exceptions über Grenzen von shared libs hinweg? Speziell mit Plugins? Fehlen uns zusätzliche compiler-Flags? Leider bin ich beim googeln nicht fündig geworden...
Danke für Eure Hilfe!
Shaka
P.S: Die Verwendung von exceptions steht außer Frage, da wir Third-Party-Code haben, der darauf aufbaut.
P.P.S: System ist im Augenblick Ubuntu 8.10, gcc 4.3.2 - es sollte später aber auch mal unter Windows gehen (da darf ich noch gar nicht daran denken).