我的LinkedList类中有一个名为insertAtHead
的方法,它接受Node*
指针作为参数。
void insertAtHead(Node* newNode)
{
if (head == NULL) {
head = newNode;
tail = newNode;
}
else {
newNode->next = head;
head->prev = newNode;
head = newNode;
}
};
newNode
可能是nullptr,在这种情况下我如何优雅地处理这种情况?
我的想法很少:
创建一个派生自std::exception
的自定义错误类(比如NullPointerParameterException
,并在方法中的任何内容之前添加以下语句。
if (newNode == nullptr)
throw NullPointerParameterException("New Node to be added cannot be a null pointer."
致电assert
将消息打印到标准输出流和exit()
处理这个问题的最佳方法是什么?
答案 0 :(得分:2)
将签名更改为引用:
void insertAtHead(Node& newNode);
因此调用者负责检查其指针。