如果给出错误的参数,则中止程序,C++ [重复]
Posted
技术标签:
【中文标题】如果给出错误的参数,则中止程序,C++ [重复]【英文标题】:Abort program if wrong argument is given, C++ [duplicate] 【发布时间】:2018-10-09 12:39:01 【问题描述】:这可能是一个普遍的问题,但是我在过去几天尝试学习 C++,并且我在很多示例代码中注意到的是,如果处理了错误,那么在这种情况下程序不会中止.
例如,我只是有一个错误的命令行参数,我看到的代码如下:
if (argument wrong)
std::cerr << "Invalid argument\n";
但是程序没有中止。在我的 C 代码中,我通常会这样做
exit(EXIT_FAILURE)
那么在 C++ 中使用这是错误的吗?或者我应该如何处理这些情况?
【问题讨论】:
这完全取决于您的应用程序所需的行为。如果您有可以在参数错误时回退到的默认值,那么,您可以继续清楚地向用户说明您在做什么。如果没有该参数继续没有意义,那么您必须中止。 做什么由你决定,但你是对的,终止程序并不常见。 【参考方案1】:您可以从您的main()
函数中直接return
,您的程序将正常关闭,并自行清理。 exit()
实际上是一种相当突然的终止方式。事情不会被清理干净。
【讨论】:
困难的部分是回到main
。有时你可能在调用堆栈中很远。
确实如此。但我在想,如果您正在验证命令行参数,那么您似乎与main()
相当接近。
哦,是的,错过了命令行参数部分。
好的,谢谢,但是你的意思是很难回到主函数?
好吧,澄清一下,让我们说我的代码中的某个地方是一个错误,我必须返回..然后一直回到我的主函数,如果是的话,可能会做一些检查因错误返回?以上是关于如果给出错误的参数,则中止程序,C++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章
***Error 然后 SocketException:软件导致连接中止:套接字写入错误 [重复]
java.net.SocketException:软件导致连接中止:套接字写入错误[重复]