Steve Sun

规范的错误信息

本文整理了 Google 官方文档中关于错误信息的编写规范。适用于有一定编程经验,尤其从事业务开发的程序员。

通过本文你可以:

  • 写出风格统一、用户友好的错误信息
  • 提高代码的可维护性,降低沟通成本

Google 文档原文:Error Messages

基本原则

  • 错误不应该被掩盖 (Don’t fail silently)
  • 遵循语言的规范 (Follow the programming language guides)
  • 实现完整的错误模型 (Implement the full error model)

    包含错误码、错误内容、错误原因、处理方法

  • 避免吞掉问题根源 (Avoid swallowing the root cause)
  • 输出错误代码 (Log the error codes)
  • 快速抛出错误 (Raise errors immediately)

解释错误原因

使用错误信息给用户解释原因时,应该遵循:

  • 具体,准确,避免含糊。
  • 在错误信息中包含用户输入的错误内容。如果输入的内容特别长:
    • 渐进地显示,提供一个可展开详情的省略号。
    • 截断内容,只保留必要部分。
  • 明确告诉用户,系统的要求和限制

解释如何处理问题

  • 对用户来说,错误信息必须有可操作性。也就是说,在解释了问题的原因后,说明如何解决这个问题。
  • 最好给用户提供一个例子。

清晰的错误信息

  • 简明扼要,使用主动语态。(这方面内容可以参考技术文档写作指南
  • 避免出现双重否定句式。
  • 让目标用户能够理解,即根据用户掌握的知识,提供有帮助的内容。
  • 专业术语应前后一致。

错误信息的格式

  • 使用链接提供更多信息。
  • 渐进式呈现错误信息(比如可以展开详情的省略号)。
  • 错误提示应该贴近错误发生的位置。
  • 避免错误信息滥用字体或颜色。
  • 使用正确的语气:
    • 不要告诉用户错在哪,告诉用户应该做什么。
    • 避免责备、幽默、道歉的语气。

对后端开发的建议

  • 错误要有错误码
  • 可以在错误信息结构里提供一个指向错误解释的 ID,如:
    {
      "error": "Bad Request - Request is missing a required parameter: -collection_name. Update parameter and resubmit. Issue Reference Number BR0x0071"
    }