|
Boost : |
From: E. Gladyshev (eegg_at_[hidden])
Date: 2004-05-30 13:09:27
----- Original Message -----
From: "Andreas Huber" <ah2003_at_[hidden]>
> E. Gladyshev wrote:
> > ----- Original Message -----
> > From: "Andreas Huber" <ah2003_at_[hidden]>
> >
> > [...]
> >> So the library will by default not provide
> >> any exception handling support (apart from terminating when an action
> >> throws).
> >>
> > I am not sure I understand it.
> > If there is no any exception handling, how would
> > the library know when an action throws in order to terminate?
>
> I mean that the library will not attempt to catch any exceptions thrown
from
> actions. Since the state machine could likely be in an unstable state when
> such an exception is thrown, it must be terminated before the exception is
> propagated to the client (I'm not doing this with try { ... } catch (
... )
> { terminate(); }but with a scope guard).
>
Just to make that I got it right.
There is no guarantee that for an unhandled exception, the scope
guard will do it. Right?
For the scope guard to work, the exception will have to be caught and
the stack unwinding triggered.
So you cannot just say that if an action throws,
the state machine will be terminated.
If the stack unwinding never happens, it is never terminated.
Right?
Eugene
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk