[omniORB] omniAsyncWorker issue in OmniORB version 4.0.1
Steffen DETTMER
Steffen.DETTMER at ingenico.com
Mon Dec 11 20:20:28 GMT 2006
* Duncan Grisby wrote on Mon, Dec 11, 2006 at 18:36 +0000:
> > The application tends to crash say about once a week in the production
> > environment.
>
> The stack trace shows it blowing up with an unhandled C++ exception.
> That's particularly bad because everything the omniAsyncWorker
> does is wrapped in a try..catch(...) block that should catch absolutely
> all exceptions.
just in case it may help, I just had a similar issue. catch(...)
- at least on g++, not sure how it is specified by C++ - has no
effect if a method has a throw-clause but throws something
different, like e.g.:
static void Class::crashMethod(void) throw std::exception
{
// would be caugth by "catch(...)" IF we had NO throw-clause
// but so it will abort()
class Private {};
throw Private;
}
try {
Class::crashMethod();
// throws Private (in constrast to throw-clause) and C++ aborts.
} catch (...) {
// won't be reached!
}
just in case it helps. ermm... and I hope I'm right, at least I
had this in my test, where the catch was "far away" from the
throw. Well, anyway, best seems to avoid "throw ..." in C++...
oki,
Steffen
More information about the omniORB-list
mailing list