August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
我们将把处理输入错误的细节讨论延后到10.6节。不过,一旦输入错误被发现,利用与处理参数错误和范围错误相同的技术,它将会被迅速处理。这里,我们只展示如何判断输入是否正确。下面是输入一个浮点数的情况:
通过测试cin,我们可以确定最后一个输入操作是否成功:
有几种原因可能会导致输入操作失败。其中一个原因就是>>操作输入的不是所要求的double类型数据。
在开发工作的早期,我们主要关注于发现错误,但并没有给出特别好的办法来解决它。我们做的仅仅是报告错误并终止程序。下面,我们将尝试更好的办法来处理它。例如:
这里!cin(“非cin”,即cin处在有问题的状态)表示前一个cin的操作失败了。
传递给函数error()的字符串将被输出,它可以作为调试的有益帮助或者反馈给用户的信息。这个对于很多程序都很有用的error()应该如何编写呢?因为我们不知道应该如何处理返回值,所以这个函数没有返回值。它在输出信息后将直接终止程序。此外,在终止程序前,我们可以做一些次要的操作,例如保持窗口一段足够长时间以便我们阅读信息。显然,这是异常处理应该做的工作(参见7.3节)。 ...