如果给出错误的参数,则中止程序,C++; 这可能是一个普遍的问题,然而,我在最近几天试图学习C++,我在很多示例代码中注意到的是,如果处理错误,程序不会在这种情况下中止。p>

如果给出错误的参数,则中止程序,C++; 这可能是一个普遍的问题,然而,我在最近几天试图学习C++,我在很多示例代码中注意到的是,如果处理错误,程序不会在这种情况下中止。p>,c++,C++,例如,我只是有一个错误的命令行参数,我看到的代码如下: if (argument wrong){ std::cerr << "Invalid argument\n"; } 那么C++中的错误是什么呢?或者我应该如何处理这些情况? < P>你可以从主()/函数中返回< /C> >,程序将优雅地关闭,并在自己之后清理。code>exit()实际上是一种非常突然的终止方式。事情不会被清理。您只需从main()函数返回,您的程序就会优雅地关闭,然后自行清理exit()实际上是一种非常

例如,我只是有一个错误的命令行参数,我看到的代码如下:

if (argument wrong){
   std::cerr << "Invalid argument\n";
}

那么C++中的错误是什么呢?或者我应该如何处理这些情况?

< P>你可以从<代码>主()/<代码>函数中<代码>返回< /C> >,程序将优雅地关闭,并在自己之后清理。code>exit()实际上是一种非常突然的终止方式。事情不会被清理。

您只需从
main()
函数返回
,您的程序就会优雅地关闭,然后自行清理
exit()
实际上是一种非常突然的终止方式。事情不会得到清理。

这完全取决于应用程序的预期行为。如果您有默认值,当参数错误时可以回退到该值,那么,您可以继续清楚地指示您对用户所做的操作。如果在没有该参数的情况下继续是没有意义的,那么您必须中止。该怎么做取决于您自己,但您是对的,终止程序并不常见。这完全取决于您的应用程序的预期行为。如果您有默认值,当参数错误时可以回退到该值,那么,您可以继续清楚地指示您对用户所做的操作。如果在没有该参数的情况下继续是没有意义的,那么您必须中止。该怎么做取决于您自己,但您是对的,终止程序并不常见。困难的部分是返回到
main
。有时候,你可能会在调用堆栈的最底层,这是真的。但是我在想,如果你在验证命令行参数,那么你很可能在相当接近
main()
的地方。哦,是的,错过了命令行参数部分。好的,谢谢,但是你说很难回到主函数是什么意思?好的,那么为了澄清,假设我的代码中的某个地方有错误,我必须返回。。然后一直返回到我的main函数,如果它是由于错误返回的,可能会进行一些检查?困难的部分是返回到
main
。有时候,你可能会在调用堆栈的最底层,这是真的。但是我在想,如果你在验证命令行参数,那么你很可能在相当接近
main()
的地方。哦,是的,错过了命令行参数部分。好的,谢谢,但是你说很难回到主函数是什么意思?好的,那么为了澄清,假设我的代码中的某个地方有错误,我必须返回。。然后一直返回到我的主函数,如果它是由于错误返回的,可能会进行一些检查?
exit(EXIT_FAILURE)