【问题标题】:C++ check user inputC++ 检查用户输入
【发布时间】:2018-12-19 12:11:41
【问题描述】:

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

【问题讨论】:

  • 异常不是这个问题的正确选择。
  • 您所描述的听起来像是一个完全正常的非异常情况(输入错误 - 再次询问用户),异常是针对异常情况(特别是发生错误的代码无法从错误中恢复的情况)。尽管您的问题过于宽泛或基于意见

标签: c++ exception


【解决方案1】:

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

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

尽管如此,标准 C++ 确实包含标准异常,旨在表示由逻辑错误引起的异常(即 std::logic_error),其中包括超出界限值的特化(即 std::domain_errorstd::length_errorstd::out_of_range)还有无效的参数(即std::invalid_error)。但是,请记住,这些异常旨在用于表示异常事件,而不是您的主要控制流。

【讨论】:

    【解决方案2】:

    我认为您会发现这个答案很有趣: Similar question

    只需检查类型是否是您想要的类型,然后执行必要的操作,即重新要求用户插入数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2012-01-20
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多