错误处理。程序应该怎么做?

时间:2010-01-23 21:59:51

标签: language-agnostic error-handling

程序应如何处理错误?例如:

程序需要文件text.txt。它必须存在并且是可写的。如果它不可写或不存在应该怎么办?它应该尝试chown / chmod文件吗?它应该尝试创建它还是只显示错误消息?

或者:它应该尝试找到解决方案还是只显示错误消息?

3 个答案:

答案 0 :(得分:6)

由你决定如何处理它。您必须定义方案,用户交互和程序的其他部分。一旦定义了这些,就可以实现并测试这些场景了。

有些问题要问:

  • 正在向该文件写入哪些数据?
  • 数据保存的重要性有多大?
  • 如果报告错误,谁会看到错误?
  • 如果报告错误,您希望用户如何反应?他们有什么选择?

答案 1 :(得分:2)

我会在大多数情况下使用Eilon的答案,但会添加以下警告 - 我不会尝试chown / chmod一个文件,除非你真的需要,即你的程序的目的是管理文件权限还是作为某种安装者。这是因为a)您尝试的chmod / chown可能不起作用,并且b)您的应用程序应该尊重运行它的用户权限 - 如果这些不足够,您应该通过任何机制通知用户。

答案 2 :(得分:0)

您的程序应该在STDERR上输出错误并返回不同于零的退出代码。

了解更多信息: