我想收到两个整数,一个接一个, 并确保用户输入的是int。如果不是整数, 我想允许用户输入新的输入。 例外在这里是一个好的解决方案吗?如果是这样,我应该使用什么例外?
答案 0 :(得分:0)
例外不是一个好的解决方案。异常旨在通过允许开发人员将控制流刷到众所周知的地毯下,同时确保在此过程中销毁任何对象,来处理异常事件。
根据您的情况,您仅尝试处理预期的事件。更重要的是,这些事件是控制流的关键部分。因此,试图隐藏幸福道路的重要部分是没有意义的。
尽管如此,标准C ++确实包含旨在表示由逻辑错误引起的异常的标准异常(例如,std::logic_error
),其中包括对超出范围的值(例如,std::domain_error
,{{1})的专门化。 }和std::length_error
)以及无效的参数(即std::out_of_range
)。但是,请记住,这些异常仅用于表示特殊事件,而不是您的主控制流。
答案 1 :(得分:-1)
我认为您可以找到有趣的答案: Similar question
只需检查类型是否为您想要的类型,然后执行必要的操作,即重新询问用户插入数据。