-1

在我的主要功能中,我编写了代码:

    try {
    empty.addItem( );
    throw  50;
} catch(int x ) {
    cout<<"fail "<<x;
}

然而,当我运行程序时,没有输出失败 50。我的错误是什么,以及如何正确使用异常?

4

2 回答 2

0

它适用于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

你确定这段代码正在你的程序中执行吗?

于 2013-11-11T05:02:19.073 回答
0

你的代码没有明显的问题。我可以想到没有打印“失败50”的两个可能原因:

  1. 程序控制实际上永远不会到达该try块 - 通过在其中放置一个打印语句进行仔细检查,就在throw.

  2. empty.addItem()正在抛出一个不是int. 您很可能会注意到您的程序神秘地失败了,而是出现了一个未捕获的异常。

于 2013-11-11T05:06:49.647 回答