【发布时间】:2014-04-11 09:55:37
【问题描述】:
当我输入“Timmy”作为名称时,此代码会引发异常。我真的不确定机制,但为什么它打印出“abracadabra”而不是“Timmy”。但我可以肯定的一件事是这里没有魔法!
这是短代码
#include <iostream>
using namespace std;
#include <string>
#include <cstdlib>
string enterName();
void checkName(string);
int main()
{
string someName = "abracadabra";
try {
someName = enterName();
}
catch(const char* error) {
cout << "main function says: "<<error <<endl;
}
cout << "Name: "<<someName<<endl;
return 0;
}
string enterName()
{
string s;
cout<<"Enter a name: ";
cin >> s;
cout<<endl;
try {
checkName(s);
}
catch(const char* err) {
cout << "middle man says: "<<err <<endl;
throw "rtetfrer";
}
return s;
}
void checkName(string name)
{
if (name == "Timmy")
throw "Help, Timmy's been kidnapped by a giant squid!";
}
【问题讨论】:
-
您在分配后抛出了异常。
-
如果你想出一个更好的标题,我会赞成这个问题。