Hi all,

One of the features of the last release was that, instead of sending some
error message to stderr and calling exit() when it encountered some
critical issue (such as the inability to find an error message file or
transcoding services), the parser now calls a user-specifiable PanicHandler
object.  When this was implemented, it was assumed that the behaviour of
the PanicHandler would be to throw an exception that could be processed
appropriately by the code that called the parsing services.

I believe that I've heard of environments where unhappy things happen when
C++ exceptions are thrown between DLL's.  In such a situation, I would
imagine that a PanicHandler author would want to set a global flag in the
routines that require parsing services that would trigger them to react
appropriately when a parsing service returned but the flag indicating the
service was unusable had been set.

Currently, this design wouldn't work in the parser, since there are no
return statements after calls to the PanicHandler and often variables are
dereferenced which are known to be null or improperly initialized when the
PanicHandler is called.  I wonder whether we should try to fix this, or
whether no one in fact knows of any situation where it wouldn't be safe for
a user's PanicHandler simply to send an exception through the parser and
back to their own routines.

Thoughts?

Cheers,
Neil
Neil Graham
XML Parser Development
IBM Toronto Lab
Phone:  905-413-3519, T/L 969-3519
E-mail:  [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to