【发布时间】:2016-02-21 20:57:17
【问题描述】:
所以我有一个程序有两个例外。在这两种情况下,我都想抛出一个可以在主函数中捕获并在错误消息中使用的字符串。但是,据我对他们的了解
try {
...
} catch(string msg) {
cerr << "..." << msg << "..." << endl;
} catch (string msg2) {
cerr << "..." << msg2 << "..." << endl;
}
不允许。有什么办法可以做上述或类似的事情吗? 谢谢
【问题讨论】:
-
你希望它做什么?用例是什么?
-
对不起,我不知道用例是什么。我想要做的是,我的程序可能会根据用户输入遇到两个大错误。在这两种情况下,我都有不同的信息要打印出来。因此,我希望每个异常都能捕获不同的消息。有没有办法识别这两个字符串异常?
-
你熟悉
if-statements吗? -
是否有正当理由不能抛出异常并正确设置其 what 参数而不是抛出字符串?
-
抛出不继承自
std::exception的东西是非常不友好的。如果您定义了两个这样做的不同类继承,那么您可以轻松地捕获它们 - 一个捕获两个捕获,或者每个捕获单独捕获,视情况而定。