gpt4 book ai didi

c++ - 处理 QPluginLoader::load() 抛出的异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:01 24 4
gpt4 key购买 nike

我有 2 个 Qt 插件,main 和 helper,main.dll 加载 helper.dll。当 main.dllhelper.dll 都在时,我能够使用 QPluginLoader 成功加载 main.dll同一个文件夹。当 helper.dll 不存在并且我尝试加载 main.dll 时,抛出异常。这是可以理解的原因 helper.dll 找不到。我的任务是成功捕获抛出的异常,而不是让应用程序崩溃。调试时 Qt Creator 显示的是:

enter image description here

下面的代码没有解决问题,所以我需要做点别的……

std::exception_ptr eptr;
QPluginLoader pluginLoader(packagePath);
try
{
pluginLoader.load();
}
catch(...)
{
eptr = std::current_exception();
}

最佳答案

我认为在这种情况下您应该使用 Windows __try/__except 扩展:

__try 
{
// guarded code
}
__except ( expression )
{
// exception handler code
}

这种异常会让你捕捉到SEH错误,你可以在MSDN上找到一篇关于它的详细文章: https://msdn.microsoft.com/en-us/library/swezty51.aspx


此外,但这是另一个话题,为了优雅地终止你也可以使用SetUnhandledExceptionFilter

关于c++ - 处理 QPluginLoader::load() 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com