我目前正在开发一个启动用户指定程序的程序。传入的是用户输入的 wstring。我的问题是如何让它抛出异常或检查“passedIn”是否有效。目前,如果用户输入“notepad.exe”,它会正确启动它,但如果他们输入像“asdf”这样的虚假内容或类似的东西,它仍然会创建进程。
try {
wchar_t* commandLine = new wchar_t [CP_MAX_COMMANDLINE];
wcsncpy_s(commandLine, CP_MAX_COMMANDLINE, passedIn.c_str(), passedIn.size() +1);
CreateProcess(NULL,
commandLine,
NULL, NULL,
false,CREATE_NEW_CONSOLE,NULL,
NULL,
&sinfo,
&pi);
delete [] commandLine;
}
catch (int e) {
cout << "An exception occurred. Exception Nr. " << e << endl;
}
我希望我的渔获能抓住它,但它没有。我能做些什么来检查它是否有效吗?
谢谢!