[Interest] Recommended exception handling
william.crocker at analog.com
william.crocker at analog.com
Mon Mar 11 21:55:15 CET 2019
>
> Hello,
> Is there a current recommended way of catching exceptions before they unwind
> through the event loop? I want this for "debug purposes" only. I have few
> methods that throw and I (think I) catch (all of) my exceptions before they
> reach the event loop, but I wanted to be sure I hadn't forgotten something
> somewhere. Shouldn't happen anyway, but I was wondering if there's (or if
> there's going to be) a replacement for QCoreApplication::notify.
>
I wrote and installed my own notify function.
My app only ever throws QStrings.
Something like...
class MyApplication : public QApplication {
Q_OBJECT
typedef QApplication BaseClass;
public:
MyApplication(int&,char**);
~MyApplication();
bool notify(QObject*,QEvent*); // This is virtual.
};
bool
MyApplication::notify( QObject *receiver, QEvent *event ) {
try {
return BaseClass::notify(receiver,event);
} catch( QString msg ) { // What I throw.
msg = msg.trimmed(); msg += " Operation aborted.";
LogEvent( EventLevel_Critical, msg );
return false;
} catch( std::bad_alloc & ) {
LogEvent( EventLevel_SystemError, "Could not allocate any more memory...");
return false;
} catch( std::exception &e ) {
LogEvent( EventLevel_SystemError, QString("Standard exception:
%1.").arg(e.what()) );
return false;
} catch( ... ) {
LogEvent( EventLevel_SystemError, "MyApplication::notify: Caught an
unexpected exception." );
return false;
}
}
> Thanks in advance!
>
> Kind regards,
> Konstantin.
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>
More information about the Interest
mailing list