【问题标题】:How can I stop printing the error message "Can't parse message of type because it is missing required fields" with protobuf3如何停止使用 protobuf3 打印错误消息“无法解析类型的消息,因为它缺少必填字段”
【发布时间】:2018-08-16 02:28:44
【问题描述】:

我只想在记录某些内容时从字符串中解析一个实例,而不关心结果。

但是当我将 protobuf 更新到 3.5.0 时,烦人的消息总是打印到终端(stderr):

“无法解析类型的消息,因为它缺少必填字段”

它的字段必须是必需的。

如何停止打印错误信息?

【问题讨论】:

    标签: protocol-buffers protobuf-c protobuf-3


    【解决方案1】:

    选项:

    • 使用optional 而不是required
    • 提供缺失的数据
    • 钩住stderr并发送给nul

    【讨论】:

      【解决方案2】:

      据我所知,protobuf 库本身并不直接打印到 stderr。相反,错误消息通过 API 返回,例如message->InitializationErrorString()

      看来是您自己的代码将此消息打印到 stderr,或者您可能启用了某些调试模式。

      您可以尝试将调试器挂钩添加到打印以查看它的来源。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2022-06-30
        • 2021-01-26
        • 2015-07-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-15
        • 2015-09-18
        • 2019-11-02
        相关资源
        最近更新 更多