
From: "Andreas Huber" <ah2003@gmx.net> To: <boost@lists.boost.org> Sent: Thursday, May 27, 2004 9:51 AM Subject: [boost] Re: [prereview request][fsm]
E. Gladyshev <egladysh <at> yahoo.com> writes:
boost::fsm does exactly this and in a generic fashion.
Does it mean that the state machine framework allows me to specify what event it will generate for a particular exception type?
Yes, you can do that if you want (it is a per state machine policy). The default is to always dispatch an exception_thrown event.
After thinking about your solution a bit more, I don't think that it is generic enough. Your solution try{...} catch(...) { try { throw; } catch( type1 ) { ... } } is very different from try{...} catch( type1 ) {...} One of the differences is that in the first case, the stack unwinding will be triggered for any exception. In the second case, it is not necessarily the case. IMO, a truly generic solution should work like the second case. So I seem to be back to my previous conclusion: there is no way to properly discriminate exception types in boost::fsm. Eugene