我从数据库函数返回字符串或NULL到主程序,有时会从异常中得到此错误:
basic_string::_S_construct NULL not valid
我认为这是因为从数据库函数返回NULL值?有任何想法吗???
string database(string& ip, string& agent){
//this is just for explanation
.....
....
return NULL or return string
}
int main(){
string ip,host,proto,method,agent,request,newdec;
httplog.open("/var/log/redirect/httplog.log", ios::app);
try{
ip = getenv("IP");
host = getenv("CLIENT[host]");
proto = getenv("HTTP_PROTO");
method = getenv("HTTP_METHOD");
agent = getenv("CLIENT[user-agent]");
if (std::string::npos != host.find(string("dmnfmsdn.com")))
return 0;
if (std::string::npos != host.find(string("sdsdsds.com")))
return 0;
if (method=="POST")
return 0;
newdec = database(ip,agent);
if (newdec.empty())
return 0;
else {
httplog << "Redirecting to splash page for user IP: " << ip << endl;
cout << newdec;
cout.flush();
}
httplog.close();
return 0;
}
catch (exception& e){
httplog << "Exception occurred in script: " << e.what() << endl;
return 0;
}
return 0;
}
您不能从声明为要返回的函数中返回NULL
(或0
),string
因为没有适当的隐式转换。您可能想返回一个空字符串
return string();
要么
return "";
如果要能够区分一个NULL
值和一个空字符串,则必须使用指针(最好是智能指针),或者可以使用boost::optional
我在做一个程序,我需要使用一个函数,它存储一个向量中的字符串的标记。这个函数不能正常工作,所以我在一个较小的程序上尝试了这个函数。当然,我使用了字符串标记器函数。但它并不像预期的那样工作。首先,代码如下: 现在的问题。我认为问题与命令有关: 它在第一个调用中工作得很好,但在while循环中出现时会出错。如果我把它注释掉并打印ptr,那么它可以正常工作,但是程序在while循环之后终止,甚至不执行
我在下面尝试捕获JSON解析错误: 为什么在处理上述异常时,打印出另一个异常,以及如何解决它?
问题内容: 我已经使用了很长一段时间了(使用python绑定以及大多数情况下),每次我需要执行javascript代码时,我都使用过method。例如,用于滚动页面(python): 或者,要在另一个元素(量角器)内无限滚动: 或者,为了获取所有元素属性的字典)(python): 但是,WebDriver API也具有我个人未使用过的功能。 它涵盖了哪些用例?什么时候应该代替常规? 这个问题是se
我得到了一个使用thymeleaf模板的页面,当使用内联脚本时,我在页面加载时遇到以下错误: 组织。xml。萨克斯。SAXS异常;行号:270;栏目号:85;元素的内容必须由格式良好的字符数据或标记组成。 代码在270行 我试过替换“
我是selenium的初学者,需要以下脚本的帮助,我正在尝试发送vai文本字段的值。下面是代码片段。 显示错误 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属性;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDri
当我直接在db中运行查询时,我得到了正确的输出,但在hibernate中,它给出了一个。我已经确认列名只是正确的。 请让我知道如何解决这个问题。