she*_*ngy 3 c++ pointers exception-handling
主要的是我不知道处理空指针的最佳实践.
这是代码:
int GetSomeVal()
{
if(ptr)
{
return *ptr
}
else
{
// What here?
// Should I return 0? or -1 or throw an exception?
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个问题,因为在google的c ++样式指南中,它并不建议我们使用异常,这可能是另一个主题.
如果我应该使用异常,这是否意味着我必须设计一个异常类抛出它?如果我不应该使用例外,那么最佳做法是什么?
如果是有意义的ptr是NULL,你不应该抛出异常.例外用于表示出现问题.
如果ptr是NULL因为出了问题,一定要抛出异常.
Google的代码风格将由Google使用.它们禁止通常在任何高级OO语言中使用的许多东西(如引用参数,异常等).除非你为谷歌工作,否则你不应该遵守它.
您可以设计自己的异常类,从中派生并从std::exception代码中抛出它.
此外,从您的代码,ptr是一个成员.如果它应该在构造函数中初始化而它没有,那么也许你应该从构造函数中抛出异常.拥有一个不可用的对象是没有用的.