[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