在我的主要功能中,我编写了代码:
try {
empty.addItem( );
throw 50;
} catch(int x ) {
cout<<"fail "<<x;
}
然而,当我运行程序时,没有输出失败 50。我的错误是什么,以及如何正确使用异常?
它适用于linux下面的测试程序。
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
try {
throw 50;
} catch(int x ) {
cout << "fail " << x << endl;
}
return 0;
}
$ g++ throw.cpp
$ ./a.out
fail 50
你确定这段代码正在你的程序中执行吗?
你的代码没有明显的问题。我可以想到没有打印“失败50”的两个可能原因:
程序控制实际上永远不会到达该try
块 - 通过在其中放置一个打印语句进行仔细检查,就在throw
.
empty.addItem()
正在抛出一个不是int
. 您很可能会注意到您的程序神秘地失败了,而是出现了一个未捕获的异常。