2
我下面的程序是給我一個out_of_range
例外。out_of_range例外:::擦除
bool myProg(char* value, int length, long& num)
{
string s;
char tmp;
bool retVal = true;
s.assign((const char*)value, length);
s.erase(remove(s.begin(),s.end(),' '),s.end());
...
// modify s characters
std::size_t found = s.rfind('F');
if (found!=std::string::npos)
s.erase(found,1);
...
// work on num variable
return true;
}
我在谷歌檢查了所有的功能,發現異常可以通過erase
僅拋出,當位置erase
功能也通過僅是無效的。
我找不到什麼輸入字符串可能會導致異常,因爲我跑了它幾年我的琴絃和程序在我所有的測試用例工作正常。
注意,程序不能被現在&修改重新部署,包括嘗試捕捉捕獲輸入變量,並檢查他們。所以我堅持只看代碼。
將該參數共享用於觸發異常可能是有益的。 –
請完整的測試用例。 – user657267
我們不知道調用者傳遞了什麼參數。我們只知道發生了異常。 – MAG