【发布时间】:2013-09-21 07:51:03
【问题描述】:
我有对字符串执行操作的函数。例如,String *concat(s1, s2); 会变成 s1+s2 并返回一个新字符串。
我想其他用户可以向我发送 NULL 参数。 我可以检查 NULL。
if(s1 == NULL || s2 == NULL)
return NULL;
然后返回 NULL。
或者我可以让整个程序退出:
exit(EXIT_FAILURE);
我认为解决问题的最佳方法是退出函数并且不返回任何内容。但是,如果我的用户期待 String 而我只是返回,他不会崩溃和烧毁吗?我也觉得打印给用户是个坏主意。
我很想找到一种方法来退出该函数并在任何情况下允许程序继续执行。
【问题讨论】:
-
组合两个
NULL字符串会产生另一个NULL字符串,所以有什么困惑。 也被调用者有责任清理输入。您需要确保您不会因输入无效而崩溃。 -
或者,您需要确保您确实因无效输入而崩溃 - 记录界面并声明它是受尊重的。快速失败也是一个好策略。
标签: c error-handling