try/catch 的新手,需要将其用于程序。出于某种原因,尽管我的程序在捕获 obj 时崩溃了。我写的示例程序只是读入一个数字,然后测试它是否低于 10 或高于 20。关键是使用两个用户定义的类来抛出和捕获。上面的 20 个 obj 被抛出并捕获得很好。但是下面的 10,如果它抛出将导致程序崩溃。为什么是这样?这是我的代码
#include <iostream>
#include <cstdlib>
using namespace std;
class above20
{
public:
above20()
{
msg = "Number is above 20.";
};
string getmsg()
{
cout<<msg<<endl;
};
private:
string msg;
};
class below10
{
public:
below10()
{
msg = "Number is below 10";
};
string getmsg()
{
cout<<msg<<endl;
};
private:
string msg;
};
int main ()
{
int num;
try
{
cout<<"Enter Number between 10 and 20:"<<endl;
cin >> num;
if (num > 20)
{
throw above20 ();
}
}
catch (above20 obj)
{
obj.getmsg();
}
try
{
if (num < 10)
{
throw below10 ();
}
}
catch (below10 obj)
{
obj.getmsg();
}
system ("pause");
return (0);
}