在C ++中抛出范围异常

时间:2010-04-25 19:57:43

标签: c++ exception

此代码有效;

int at(int index) {
  if(index < 1 || index >= size)
    throw 0;

  return x[index];
}

然而,这不是

int at(int index) {
  if(index < 1 || index >= size)
    throw std::out_of_range;

  return x[index];
}

我收到错误“''之前的主要表达式';'”。现在......让我感到惊讶,因为我知道std :: out_of_range存在而且我有

#include <stdexcept>

1 个答案:

答案 0 :(得分:71)

throw std::out_of_range;替换为throw std::out_of_range ("blah");。即你需要创建一个对象,你不能抛出一个类型。