gpt4 book ai didi

c++ - 得到空指针怎么办?

转载 作者:太空狗 更新时间:2023-10-29 19:59:39 24 4
gpt4 key购买 nike

主要是我不知道处理空指针的最佳实践。

代码如下:

int GetSomeVal()
{
if(ptr)
{
return *ptr
}
else
{
// What here?
// Should I return 0? or -1 or throw an exception?
}
}

我得到这个问题是因为在 google 的 c++ style-guide 中,它没有建议我们使用异常,这可能是另一个话题。

如果我应该使用异常,是否意味着我必须设计一个异常类并抛出它?如果我不应该使用异常,最佳做法是什么?

最佳答案

如果 ptrNULL 有意义,则不应抛出异常。异常用于指示出现问题。

如果 ptrNULL 因为出了点问题,一定要抛出异常。

Google 的代码风格是 Google 使用的。它们禁止许多通常在任何高级 OO 语言中使用的东西(如引用参数、异常等)。除非您为 Google 工作,否则不应遵守它。

您可以设计自己的异常类,从 std::exception 派生它,然后从代码中抛出它。

此外,从您的代码来看,ptr 是成员。如果它应该在构造函数中初始化但没有,也许你应该从构造函数中抛出异常。拥有无法使用的对象是没有用的。

关于c++ - 得到空指针怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12137553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com