Structured exception translation is now optional

I’ve had a couple of requests from clients recently that they be able to handle any structured exceptions in The Server Framework themselves. Up until now all framework threads install a SEH translator and catch the resulting C++ exceptions in their outer catch handlers and report the error to the framework user via various mechanisms. This generally works well and, prevents exceptions going unreported but sometimes users want to integrate the framework with code that deals with uncaught structured exceptions in other ways.

The latest version of the framework will include two new configuration defines that can be set in the Config.h file that will selectively turn off the structured exception translator installation. If JETBYTE_TRANSLATE_SEH_EXCEPTIONS is set to 0 then no translation will occur which will mean that structured exceptions are allowed to propagate out of framework threads and remain uncaught. If JETBYTE_TRANSLATE_SEH_EXCEPTIONS_IN_DEBUGGER is set to 0 then the translator is installed unless the code is running in the debugger at the time when the translator is installed. Note that the defaults if not explicitly configured remain as before.

These changes will be included in the 6.1 release of The Server Framework which currently has no scheduled release date.