有一种称为foo的方法,有时会返回以下错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Abort

有没有一种方法可以使用try-catch块来阻止此错误终止程序(我要做的只是返回-1)?

如果是这样,它的语法是什么?

我还能如何用C++处理bad_alloc

最佳答案

您可以像其他任何异常一样捕获它:

try {
  foo();
}
catch (const std::bad_alloc&) {
  return -1;
}

从这一点上您可以做的事完全取决于您,但这在技术上绝对是可行的。

关于c++ - 如何在C++中处理bad_alloc?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9456728/

10-12 04:43