Feature #3034

Updated by Eric Irrgang 11 months ago

@libgmxapi@ libgmxapi can throw exceptions derived from @gmxapi::Exception@, gmxapi::Exception, defined in the gmxapi/exceptions.h installed header. These exceptions should have bindings in the gmxapi Python package (in the @_gmxapi@ C++ extension module) so that they are easily catchable from Python.

Exceptions defined in the @_gmxapi@ module should derive from @gmxapi::Exception@. gmxapi::Exception.

A trampoline class should establish the shared inheritance and extensibility of @gmxapi.exceptions.Error@

Developer documentation should describe how exceptions propagate and how they are catchable in both directions between Python and C++, with explanations of caveats for exceptions originating in different binaries or Python packages. #701, #988, #2045

Also reference prior discussion at