> The nice thing about the `noexcept` is it can catch exceptions from the
> `catch` clause too, so it would be good if it could be used.
Yeah, but my point is that it's not really a solution, as it'll abort Geany
altogether, not just the plugin. So a well-behaved plugin should manage it
anyway. Maybe do:
```C++
extern "C" G_MODULE_EXPORT void geany_load_module (GeanyPlugin *plugin)
{
try {
plugin->info->name = "great plugin";
plugin->info->description = "saves the world";
plugin->info->version = "42";
plugin->info->author = "Me";
plugin->funcs->init = great_plugin_init;
plugin->funcs->cleanup = great_plugin_cleanup;
GEANY_PLUGIN_REGISTER (plugin, 225);
} catch(...) {
// not much to be done, and mustn't throw exceptions
g_critical("My great plugin failed to register itself. Maybe it's not so
great after all...");
}
}
```
> I wouldn't think it would change the ABI […]
It *has* not to change the ABI of the C decl, as the C caller won't know about
it so won't do anything in either case. It still has to be able to call the
function just the same.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/1215#issuecomment-244967214