相关疑难解决方法(0)

抛出新的std :: exception vs throw std :: exception

看着一些代码,我偶然发现:

throw /*-->*/new std::exception ("//...
Run Code Online (Sandbox Code Playgroud)

我一直认为你不需要/你不应该new在这里使用.
什么是正确的方法,都可以,如果有的话有什么区别吗?

BTW从我所看到的同时"使用PowerShell提升库"的"grepping"永远不会使用throw new.

PS我也发现了一些使用的CLI代码throw gcnew.这可以吗?

c++ exception

105
推荐指数
4
解决办法
5万
查看次数

catch(...)没有捕获异常,我的程序仍在崩溃

我的测试人员遇到问题,我的应用程序在初始化时崩溃了.我添加了更多的日志记录和异常处理,但它仍然与通用的"此程序已停止工作"消息崩溃,而不是触发我的错误处理.

鉴于我的main()看起来像这样,并且catch(...)在什么情况下不会被触发?

try{
    simed::CArmApp app(0, cmd);
    for(bool done = false;!done;) 
    {
        done = !app.frame();
    }
} catch(const std::runtime_error &e){
    handleApplicationError(e.what());
    return -1;
} catch(...) {
    handleApplicationError("Unknown Error");
    return -999;
}
Run Code Online (Sandbox Code Playgroud)

我的代码正在调用一个执行OpenGL渲染的库,这是我认为出错的地方.

c++ opengl crash exception-handling visual-c++

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×2

crash ×1

exception ×1

exception-handling ×1

opengl ×1

visual-c++ ×1