抛出'std :: length_error'的实例后终止调用

时间:2012-01-05 23:30:43

标签: c++ activemq

我遇到以下异常。并且不确定是什么导致它。

任何想法?

这是我的连接字符串:

std :: string brokerURI =“tcp://127.0.0.1:61613?wireFormat = stomp”;

这是错误:

E 05-150926.792540  4680 yfor_lookup4: invalid hostname: <(null)>
Invalid argument
        FILE: decaf/internal/net/tcp/TcpSocket.cpp, LINE: 222
        FILE: decaf/internal/net/tcp/TcpSocket.cpp, LINE: 251
        FILE: decaf/net/Socket.cpp, LINE: 327
        FILE: activemq/transport/tcp/TcpTransport.cpp, LINE: 154
        FILE: activemq/transport/tcp/TcpTransportFactory.cpp, LINE: 117
        FILE: activemq/transport/tcp/TcpTransportFactory.cpp, LINE: 59
        FILE: activemq/core/ActiveMQConnectionFactory.cpp, LINE: 322
terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create
Aborted (core dumped) 

1 个答案:

答案 0 :(得分:3)

从您的错误消息中,您似乎最终得到一个空字符串。实际错误可能是通过将负大小传递给std::string构造函数而产生的。这可以是例如使用s.find('?')的结果:如果找不到相应的字符,则返回std::string::npos,通常为负数。