2

以下は、「プログラミング: C++ を使用した原則と実践」からの抜粋です。throw Bad_area()表記に混乱しています。この本はそれを説明しようとしています。この説明は代入表記と一致しません。int x=1 == int x(1); またはBad_area x; .

コード例 (try ブロックをコメントアウト):

class Bad_area {}; // a type specifically for reporting errors from area()

// calculate area of a rectangle
// throw a Bad_area exception in case of a bad argument
int area(int length, int width)
{
  if (length<=0 || width<=0) throw Bad_area();
  return length*width;
}

int main()
try {
  // ...
}
catch (Bad_area) {
  cout << "Oop! bad arguments to area()\n";
}
4

1 に答える 1