主要是我不知道处理空指针的最佳实践。
代码如下:
int GetSomeVal()
{
if(ptr)
{
return *ptr
}
else
{
// What here?
// Should I return 0? or -1 or throw an exception?
}
}
我得到这个问题是因为在 google 的 c++ style-guide 中,它没有建议我们使用异常,这可能是另一个话题。
如果我应该使用异常,是否意味着我必须设计一个异常类并抛出它? 如果我不应该使用异常,最佳做法是什么?
最佳答案
如果 ptr
为 NULL
有意义,则不应抛出异常。异常用于指示出现问题。
如果 ptr
是 NULL
因为出了点问题,一定要抛出异常。
Google 的代码风格是 Google 使用的。它们禁止许多通常在任何高级 OO 语言中使用的东西(如引用参数、异常等)。除非您为 Google 工作,否则不应遵守它。
您可以设计自己的异常类,从 std::exception
派生它,然后从代码中抛出它。
此外,从您的代码来看,ptr
是成员。如果它应该在构造函数中初始化但没有,也许你应该从构造函数中抛出异常。拥有无法使用的对象是没有用的。
关于c++ - 得到空指针怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12137553/