Fangen der Basisklasse der Exception nicht möglich?
-
Hi,
ich habe eine Klasse FileNotFound, die von PluginError erbt.
Jetzt:try { // mach irgendwas } catch(PluginError& err) { std::cerr << '!'; }
Leider fängt er keinen PluginError, aber einen FileNotFound kann ich fangen.
Allerdings ist FileNotFound ja nur EIN PluginError und ich möchte daher allgemein PluginError fangen, funktioniert das auf diese Weise nicht?MfG Eisflamme
-
doch sollte eingentlich so funktionieren.
Zeig mal einen minimalen Code, der den Fehler erzeugt
-
Der den Fehler erzeugt oder die Exception wirft?
Fehler gibt es keine, die Exception wird halt nur nicht gefangen:ONEARG_EXCEPTION(FileNotFound, pluginname);
In dieser Zeile war ich auch mit dem Debugger, wird also definitiv aufgerufen.
#define ONEARG_EXCEPTION(EClass, Arg) throw Exception::EClass(Arg, __FILE__, __LINE__)
Seltsamerweise wird in einem catch zu dem übergeordneten try mit dem Fangen von Error die Exception auch nicht erfasst. (PluginError erbt von Error, so wie alle Exception-Klassen von mir)
Erst catch(...) erfasst den Fehler dann.class FileNotFound : public PluginError {...} class PluginError : public Error {...}
Noch irgendwoher Code?
MfG Eisflamme
-
zeig ein minimiales kompilierbares Beispiel, mit dem man den Fehler nachvollziehen kann.
wrf
-
Hi,
nützt nichts, minimaler Code läuft.
Ich erhoffte mir hier Ideen, die zur Problemlösung beitragen könnten, von Leuten, die in dem Bereich vielleicht Erfahrung haben, es hätte sich um einen Fehler handeln können, der in dem Bereich auftritt.
Weiterer Code ist absolut unnötig, weil ich schon alle relevanten Informationen gepostet habe, es gibt nichts, was durch weiteren Code neue Informationen brächte, es würde nur die Übersicht stören.
Anscheinend sind in diesem Forum Beiträge, bei denen Ideen Antworten darstellen würden, unerwünscht, ich merke es mir für das nächste Mal.Danke für die Hilfe,
der Thread kann geschlossen werden,MfG Eisflamme