terminate called after throwing an instance of 'std::invalid_argument' what(): stod ./start_routing.sh: line 7: 9274 Aborted (core dumped) ${CURR_DIR}/../bin/routing_node 分析一下报错原因
时间: 2024-04-19 13:24:41 浏览: 154
C程序设计教学课件:CHAPTER13EXCEPTIONHANDLING.pptx
这个错误是由于调用了 `std::stod` 函数时抛出了 `std::invalid_argument` 异常导致的。`std::stod` 是 C++ 标准库中的一个函数,用于将字符串转换为对应的双精度浮点数。然而,当字符串无法解析为有效的双精度浮点数时,就会抛出 `std::invalid_argument` 异常。
根据报错信息中的 `./start_routing.sh: line 7: 9274 Aborted (core dumped) ${CURR_DIR}/../bin/routing_node`,可以看出异常发生在 `start_routing.sh` 脚本的第7行,导致 `routing_node` 程序被终止并生成了核心转储文件。
要解决这个问题,需要检查第7行的代码,并确保在调用 `std::stod` 函数之前,传递给它的字符串是有效的双精度浮点数表示。可能的原因包括:
1. 传递给 `std::stod` 函数的字符串为空或不是有效的双精度浮点数表示。
2. 字符串中包含了无法解析为浮点数的字符,例如字母或特殊符号。
请检查相关代码,确保传递给 `std::stod` 函数的参数是有效的双精度浮点数表示。如果仍然有疑问或需要进一步帮助,请提供相关代码片段或更多上下文信息,以便我能够提供更具体的建议。
阅读全文