Subject Re: [Firebird-Architect] External Engines (and Plugins)
Author Alex Peshkov
On Tuesday 24 June 2008 08:08, Dmitry Yemanov wrote:
> Adriano dos Santos Fernandes wrote:
> > C++ libraries can throw exceptions and the plugin part (CppEngine.h)
> > embedded on them deal with exceptions and translate to the Error object.
> > There is no boundaries violation.
>
> Maybe Vlad meant to say that a properly implemented dynamic library
> should never throw exceptions to the caller process. As long as this
> rule is followed, you don't need to handle C++ and Delphi plugins
> differently in terms of exceptions.

Moreover, dynamic library MUST never throw exceptions to the caller process.
Violating this rule can (and will) cause errors, when memory, allocated for
exception in dynamic library is deallocated by caller process.