Seite 1 von 1

[gelöst]delete Exception

Verfasst: 7. September 2011 10:14
von redbulls
Hi
Ich habe eine eigene ExceptionKlasse erzeugt die von QtConcurrent::Exception erbt. Wenn ich die Exception folgend werfe:

Code: Alles auswählen

MyException e;
e.raise();
und folgend abfange:

Code: Alles auswählen

catch(MyException& e){

}
wo wird die Instanz, die mit new in der Methode raise() erzeugt wird deleted?

danke

Re: delete Exception

Verfasst: 7. September 2011 10:39
von franzf
Du sollst doch in raise gar keine neue Instanz erstellen, sondern *this werfen.
In your QtConcurrent::Exception subclass, reimplement raise() like this:

Code: Alles auswählen

void MyException::raise() const { throw *this; }

Re: delete Exception

Verfasst: 9. September 2011 16:45
von redbulls
Danke!
Hatte die Doku eh gelesen, bildete mir aber felsenfest ein, dass die Exception in raise am Heap erzeugt wird^^