c++ - 抛出一个 catch block (C++)是否有效?

标签 c++ exception

我有一段时间没有用过 C++,我的内存很模糊,到目前为止我也没有找到明确的答案。我不是在谈论重新抛出捕获的异常,而是捕获一个异常并抛出另一种类型,例如:

std::unordered_map<int, int> foo;
...
int getFoo(int id)
{
  try {
    return foo.at(id);
  }
  catch (std::out_of_range& e)
  {
    throw MyMoreDescriptiveExceptionType();
  }
}

最佳答案

是的。 (必须填写达到30个字符)

关于c++ - 抛出一个 catch block (C++)是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19868213/

相关文章:

c++ - int* x[n][m] 和 int (*x) [n][m] 有什么区别?

c++ - 如何在 C++ 中访问 map<string, vector<int>> 的值?

c++ - 异常 - C++

c++ - 从谷歌日志库的 CHECK 宏中捕获 C++ 异常

python - 在 SqlAlchemy @validates 装饰器中返回自定义消息

c++ - co_await 之后当前处理的异常是什么?

c++ - 如何选择函数指针类型?

C++ Builder - 多线程数据库更新

c++ - 终止处理程序可以抛出异常吗?

c++ - 基于范围的 for 循环表达式中的临时可选