| 2012年12月4日
程序编译没有问题,突然在测试的时候出了这样的问题。
terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_S_construct NULL not valid
这个问题在我这里是因为调用了getenv,但是在测试的是后getenv的返回值是一个空值,而我没有检查就直接给string赋值。
就造成了c++中string构造的失败。
所以在写法上要注意对这种string空构造的失败。下面的方法可以避免string的空构造。
const char* query_string = getenv("QUERY_STRING");
std::string q_string = query_string ? query_string : "";
关注「黑光技术」,关注大数据+微服务