[Qt-interest] QtConcurrent::Exception
Niklaus Hersche
niklaus.hersche at gesys.ch
Fri May 8 07:50:39 CEST 2009
It could be done that way. But the idea of throwing everywhere and catching
in one place, has
certainly its attraction and leads to less code and more flexibility.
Cheers
Nik
_____
Von: Sylvain Pointeau [mailto:sylvain.pointeau at gmail.com]
Gesendet: Donnerstag, 7. Mai 2009 16:36
An: Niklaus Hersche
Cc: qt-interest at trolltech.com
Betreff: Re: [Qt-interest] QtConcurrent::Exception
why don't you catch your exception from the specified thread and send an
event to your main thread?
you should really avoid thinking exceptions with threads.
Cheers,
Sylvain
On Thu, May 7, 2009 at 4:25 PM, Niklaus Hersche <niklaus.hersche at gesys.ch>
wrote:
Hi,
Thanks for answering.
Meanwhile i figured out how to do it.
It only works, if you throw the exception from within an eventhandler.
This presupposes, that the thraed has an eventloop ( call exec()).
You can try/catch in QApplication::notify
e.g:
************************************************************
virtual bool notify(QObject *p_sender, QEvent *p_event) {
try {
return QApplication::notify(p_sender, p_event);
}catch(const MyXeption &e) {
QThread *currentThread = QThread::currentThread();
if(currentThread != thread()) {
// l'exception à été lancé dans une autre thread
// il n'est donc pas possible d'afficher d'éléments graphique ici ...
qDebug() << "MyXeption caught:" << e.what();
} else {
// l'exception à été lancé dans la thread principale
// on peut donc afficher un dialog ...
qDebug() << "MyXeption caught:" << e.what();
}
}
}
************************************************************
See also http://forum.qtfr.org/viewtopic.php?id=7615
Cheers
Nik
________________________________________
Von: Sylvain Pointeau [mailto:sylvain.pointeau at gmail.com]
Gesendet: Donnerstag, 7. Mai 2009 15:31
An: Niklaus Hersche
Cc: qt-interest at trolltech.com
Betreff: Re: [Qt-interest] QtConcurrent::Exception
I don't think that the exceptions in C++ can be thrown in one thread and
catched in another.
Cheers,
Sylvain
On Wed, May 6, 2009 at 2:18 PM, Niklaus Hersche <niklaus.hersche at gesys.ch>
wrote:
Hi,
In a worker thread I want to throw a QtConcurrent::Exception and catch it in
the main thread.
According the documentation,
" Base class for exceptions that can transferred across threads"
this should be possible.
Does anybody know how to implement it ?
Regards
Nik
_______________________________________________
Qt-interest mailing list
Qt-interest at trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090508/5d469b66/attachment.html
More information about the Qt-interest-old
mailing list