[gelöst]delete Exception

Alles rund um die Programmierung mit Qt
Antworten
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

[gelöst]delete Exception

Beitrag 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
Zuletzt geändert von redbulls am 9. September 2011 16:45, insgesamt 1-mal geändert.
sehr interessiert an Qt
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: delete Exception

Beitrag 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; }
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: delete Exception

Beitrag von redbulls »

Danke!
Hatte die Doku eh gelesen, bildete mir aber felsenfest ein, dass die Exception in raise am Heap erzeugt wird^^
sehr interessiert an Qt
Antworten