以下は、「プログラミング: 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";
}