我总是在使用之前检查Message::GetDescriptor()
的返回值,但什么时候会返回null?是否可能没有必要检查返回值?
文档:
声明:
const Descriptor *
Message::GetDescriptor() const
答案 0 :(得分:1)
您应该始终检查代码调用的可能每个API 的返回类型,并且绝不应该做出任何假设但是可靠的API可能是。 API由于人为控制之外的各种原因而失败: -
由于API来自 Google ,他们做出了一个天真的假设,即第四个原因永远不会成真,只需降低软件的健壮性。 99.99%的时间它似乎只是一个冗余检查或过度保护代码 - 但是当它失败时,它会有0.01%的时间从你的软件中获得不可靠的行为
根据我多年来的经验,可以很容易避免(如果不是固定的)成本最高的错误,这是忽略简单和基本错误处理的结果
答案 1 :(得分:0)
您不必检查它,对于每条消息,您应该获得非NULL指针。