protobuf 2.0版本排查必填字段未填的方法

在proto2.0版本中,如果required字段没有填写,那么proto编码字符串发给对方进行parse时,对方会parse失败,因此有必要在发送前检查一下是否存在这种情况(特别是在debug阶段)

1.为了获取proto序列化的错误信息,首先不能使用MESSAGE_LITE形式的proto,即不要在proto的开头申明 option optimize_for = LITE_RUNTIME;

2.在proto对象调用SerializeToString之前,通过IsInitialized方法判断是否该proto对象状态异常,如果为false,则使用proto对象的InitializationErrorString方法获取错误信息。

    原文作者:liangcb
    原文地址: https://blog.csdn.net/CHALLENG_EVERYTHING/article/details/120826926
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞