Language agnostic 错误处理。一个程序应该怎么做?

Language agnostic 错误处理。一个程序应该怎么做?,language-agnostic,error-handling,Language Agnostic,Error Handling,程序应该如何处理错误?例如: 程序需要文件text.txt。它必须存在并可写。如果它不可写或不存在,该怎么办?它应该尝试对文件进行chown/chmod吗?它应该尝试创建它还是仅仅显示一条错误消息 或者:它应该尝试找到解决方案还是只显示错误消息?如何处理取决于您。您必须定义您的场景、用户交互和程序的其他部分。一旦定义了这些场景,就应该实施和测试这些场景 要问的一些问题: 正在将哪些数据写入文件 保存数据有多重要 如果报告了错误,谁将看到错误 如果报告了错误,您希望用户如何反应?他们有什么选择

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

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


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

如何处理取决于您。您必须定义您的场景、用户交互和程序的其他部分。一旦定义了这些场景,就应该实施和测试这些场景

要问的一些问题:

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

    • 这取决于你如何处理。您必须定义您的场景、用户交互和程序的其他部分。一旦定义了这些场景,就应该实施和测试这些场景

      要问的一些问题:

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

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

      有关更多信息:


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

      有关更多信息:


      我在很大程度上同意Eilon的回答,但会添加以下警告-我不会尝试对文件进行chown/chmod,除非您确实需要,即如果您的程序的目的是管理文件权限或充当某种安装程序。这是因为a)您尝试的chmod/chown可能不起作用,b)您的应用程序应该尊重其运行时的用户权限-如果这些权限不够,您应该通过您这样做的任何机制通知用户。

      我在很大程度上同意Eilon的回答,但会添加以下警告-我不会尝试这样做chown/chmod文件,除非您确实需要,即如果您的程序的目的是管理文件权限或充当某种类型的安装程序。这是因为a)您尝试的chmod/chown可能无法工作,b)您的应用程序应尊重其运行时的用户权限-如果这些权限不足,您应通过执行此操作的任何机制通知用户