首页 > 解决方案 > C++ 检查用户输入

问题描述

我想接收两个整数,一个接一个,并确保用户输入是一个整数。如果它们不是整数,我想允许用户输入新的输入。异常在这里是一个很好的解决方案吗?如果是这样,我应该使用什么例外?

标签: c++exception

解决方案


例外不是一个好的解决方案。异常旨在通过允许开发人员将其控制流刷到众所周知的地毯下方来处理异常事件,同时确保在此过程中销毁任何对象。

根据您的情况,您只是尝试处理预期的事件。更重要的是,这些事件是控制流的关键部分。因此,试图隐藏幸福道路的重要部分是没有意义的。

然而,标准 C++ 确实包括旨在表示由逻辑错误(即std::logic_error)引起的异常的标准异常,其中包括对越界值(即std::domain_error和)std::length_error以及std::out_of_range无效参数(即std::invalid_error)的特化。但是,请记住,这些异常旨在用于表示异常事件,而不是您的主要控制流。


推荐阅读