开发者

How to catch substr exception?

开发者 https://www.devze.com 2023-03-06 07:35 出处:网络
I\'m using substr for generating substring. How I can catch substr exception? For instance: terminate called after throw开发者_如何学Cing an instance of \'std::out_of_range\'

I'm using substr for generating substring. How I can catch substr exception? For instance:

terminate called after throw开发者_如何学Cing an instance of 'std::out_of_range'


Like this:

try
{
  /// use substr
}
catch( std::out_of_range& exception )
{
   // print out an error, and fail, or restart if appropriate.
}


try
{
    std::string sub = mystring.substr(10,1);
}
catch (std::out_of_range & ex)
{
    cout << "caught exception!" << endl;
}


substr throws an out of range exception if its first parameter (the starting position of the substring) is greater than the length of the string it is being applied to:

string s = "foo";
s.substr( 1 );   // ok
s.substr( 5 );   // exception

So the obvious solution is not to write code where the second case can occur.

0

精彩评论

暂无评论...
验证码 换一张
取 消