1. ホーム
  2. c++

[解決済み] C++で範囲外の例外を投げる

2022-03-06 20:26:47

質問

このコードは動作します。

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>

解決方法は?

交換 throw std::out_of_range;throw std::out_of_range ("blah"); . つまり、オブジェクトを作成する必要があるため、型を投げることはできません。