Can a typed exception thrown in method in a DLL cross the DLL boundary and
be caught by the external component calling the method?
Background: I have a Delphi package loaded into a server which defines some
classes. These classes provide the interface to the server used by
"applications" that "plug into" the server. The applications are implemented
as DLLs. If one of these DLL applications throws an exception and handles
it, all is well. Exceptions that go unhandled do not seem to make it back to
the method in the calling package even though there is a try / except block
there.
I know that silently catching an exception and stifling it is a bad idea.
But, I'd prefer to catch one, log the failure and shutdown more gracefully
than happens by default. That's because the server is an interactive voice
response unit. There are a slew of things related to telephony,
text-to-speech, speech recognition, media streaming and recording and
database access which have non-trivial uninitialization steps.
Thanks,
Will