【问题标题】:In Google's Protocol Buffers, what is a suitable protocol file/model for Exceptions?在 Google 的协议缓冲区中,什么是适用于异常的协议文件/模型?
【发布时间】:2011-02-01 16:46:51
【问题描述】:

Protocol Buffers 没有原生异常类型。适合跨语言异常的 .proto 文件是什么样的?

【问题讨论】:

    标签: java php python exception protocol-buffers


    【解决方案1】:

    Protocol Buffers 的技术负责人 Kenton Varda 在this blog post 的评论 9 中说:

    如果您需要返回结构化 错误,那么正确的做法是 使您的响应类型能够 代表该信息...我们觉得 明确支持异常 会增加太多的复杂性 实际收益不大。

    这是有道理的,因为如果您想返回详细的错误信息,.proto 声明会因情况而异。如果您想要非常通用的异常(只是一个字符串消息),那么底层 RPC 机制可能已经能够提供这个,例如HTTP 状态。

    【讨论】:

    • 谢谢,这非常有用。在肯顿瓦尔达发表评论之前,我曾阅读过这篇文章。现在很清楚我必须实现一个跨语言异常模型,我希望在这个模型上利用社区的聪明才智。必须详细说明例外情况,以便以 HTTP 状态所没有的方式有用。挑战在于建模在不同语言中有意义的异常,例如Python 的“StopIteration”对 C++/PHP/Java 有多大意义?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2012-05-03
    • 2010-11-28
    相关资源
    最近更新 更多