【发布时间】:2014-11-21 20:08:58
【问题描述】:
我一直在做一些学校项目,我用这个函数来输出错误:
void errorMsg(char* msg)
{
fprintf(stderr, msg);
exit(EXIT_FAILURE);
}
所以我可以这样做:
if (condition)
errorMsg("Error, Wrong parameters.");
消息将显示给用户,程序将退出并显示错误代码。
但我因使用exit 函数而获得了减分。
所以我只是想知道我应该怎么做?除了在main函数中多次写这个之外,还有其他方法吗?
if (condition)
{
fprintf(stderr, "Error, Wrong parameters.");
return(EXIT_FAILURE);
}
感谢您的宝贵时间。
【问题讨论】:
-
您应该询问给您的作品打分的人他们的期望。我们可以为您提供建议,但您真正需要的是了解评估员想要什么。如果我们的建议与他们的不符,那么您的情况也不会好到哪里去。
-
你确定它是为
exit而不是char * - fprintf? -
不管你是不是通过函数来做的,你的快速退出方法还是一样的。
-
@WeatherVane 编译器无法检查格式说明符的存在,因为字符串不是文字。使用
%s, msg或fputs。 -
通常,后面的问题会作为前面问题的副本关闭。这一次,我颠倒了这个过程,因为后面的问题比这个问题有更好的答案,尽管基本问题名义上涵盖了相同的领域。 FWIW:我经常在我的代码中使用与
errorMsg()等效的函数。除非有设计标准将其排除在外(例如“代码将进入库,因此不应单方面退出”),否则将代码设计为在紧急情况下调用 exit 是完全合理的。
标签: c error-handling exit