- 异常
异常的基本思想是,如果一个函数发现一个自己不能处理的错误,它不是正常返回,而是抛出(throw)出一个异常来表示错误的发生。任一个直接或间接调用者都可以直接捕获这一异常,并确定如何处理。
函数可以用try来处理异常:把要处理的异常情况罗列在catch语句后,如果出现一个没有被任何调用函数处理的异常,程序终止运行
using namespace std;
class Bad_area{};
int area(int length, int width) {
if (length <= 0 || width <= 0) throw Bad_area{};
return length * width;
}
int framed_area(int length, int width)
{
constexpr int framed_area = 2;
return area(length - framed_area, width - framed_area);
}
int main() {
try {
int x = -1;
int y = 2;
int z = 4;
int area1 = area(x, y);
int area2 = framed_area(y, z);
}
catch (Bad_area) {
cout << "bad arguments to area()\n";
}
return 0;
}