Browse Source

Improve the `get_node()` error message to be more descriptive

- Mention the origin of the `get_node()` call.
- Mention whether the attempted path is absolute or relative.

See #46214.
Hugo Locurcio 4 years ago
parent
commit
e6abdc943d
1 changed files with 9 additions and 1 deletions
  1. 9 1
      scene/main/node.cpp

+ 9 - 1
scene/main/node.cpp

@@ -1442,7 +1442,15 @@ Node *Node::get_node_or_null(const NodePath &p_path) const {
 
 Node *Node::get_node(const NodePath &p_path) const {
 	Node *node = get_node_or_null(p_path);
-	ERR_FAIL_COND_V_MSG(!node, nullptr, "Node not found: " + p_path + ".");
+
+	if (p_path.is_absolute()) {
+		ERR_FAIL_COND_V_MSG(!node, nullptr,
+				vformat(R"(Node not found: "%s" (absolute path attempted from "%s").)", p_path, get_path()));
+	} else {
+		ERR_FAIL_COND_V_MSG(!node, nullptr,
+				vformat(R"(Node not found: "%s" (relative to "%s").)", p_path, get_path()));
+	}
+
 	return node;
 }