相关疑难解决方法(0)

"内存不足"是一个可恢复的错误?

我已经编程了很长时间,我看到的程序,当它们内存不足时,会尝试清理并退出,即优雅地失败.我不记得上次我看到一个人真正尝试恢复并继续正常运行.

如此多的处理依赖于能够成功分配内存,特别是在垃圾收集语言中,似乎内存不足错误应归类为不可恢复.(不可恢复的错误包括堆栈溢出等.)

使其成为可恢复错误的令人信服的理由是什么?

language-agnostic memory memory-management exception error-recovery

74
推荐指数
7
解决办法
7950
查看次数

C++"new"运算符能否在现实生活中抛出异常?

new操作员可以在现实生活中抛出异常吗?

如果是这样,除了杀死我的应用程序之外,我是否有任何处理此类异常的选项?

更新:

任何真实的,重要的new应用程序检查失败并在没有内存时恢复吗?


也可以看看:

c++ exception out-of-memory new-operator

44
推荐指数
7
解决办法
3万
查看次数

C++异常处理失败

我很擅长C/C++中的异常处理 - 我知道所有关于从std :: exception创建自定义类,何时抛出,什么时候回到UNIX errno之类的简单事情等等.我确实有一件事我'当谈到访问COTS代码时,总是有点模糊.

如果我从COTS库中调用函数,如下所示:

void DoSomething()
{
    try
    {
        CallCotsFunction();
    }
    catch (CotsException& ce)
    {
        //Cots error caught
    }
    catch (...)
    {
        //Unknown error caught.
    }
}
Run Code Online (Sandbox Code Playgroud)

如果CallCotsFunction()异常处理不好或没有异常处理并执行除零或其他什么,它会传播到我的异常处理程序吗?

如果CallCotsFunction()导致sig-11或某种类型的东西会被抓住,或者所有赌注都是严重的?

c++ exception-handling

0
推荐指数
1
解决办法
469
查看次数