C错误处理最佳实践 - 使用exit()?

时间:2015-06-03 10:50:29

标签: c error-handling

我有一个c程序,它定义了以下功能:

void logFatal(char *msg, enum errors error)
{
    fprintf(stderr, msg);
    exit(error);
}

在程序的其余部分,如果发生任何事情意味着如果继续执行程序将无法正常运行(典型的例子是调用malloc无法分配内存),那么我调用logFatal并且程序退出,它恰好发生在哪里。

这是好/坏的做法吗?

1 个答案:

答案 0 :(得分:0)

只要你没有为其他人写图书馆;)你可以自由地这样做。它通常用作最后一个资源,因为大多数错误都足以取消操作。

想象一下这个错误:

  • 用户点击打开文件
  • 文件不存在
  • 程序退出

感觉有点苛刻......所以在这种情况下最好通过给用户等的消息来处理错误。但是既然你没有指定什么样的应用程序,我无法告诉你任何关于但是,malloc故障通常表明存在很大问题,所以在这种情况下,最好退出