The REAL problem with exceptions is is when one passes through some C code and back into C++ which catches it and continues to execute.
That's not the case here, as this is only directly called by Geany, right?
If an exception tries to exit a noexcept function its an automatic terminate which tells the programmer they screwed up.
Not perfect, but indeed better than corrupting the call stack.
BTW, can really C-linkage stuff throw exceptions? Sure it's somewhat unrelated, but if it's meant to be called by C code it better not throw indeed.