Several member functions of std::string might throw exceptions. For example, if you use a very large number to specify the initial storage size, string’s constructor will throw an exception:
string s(string::npos, 'c'); //throws std::length_error
In practice, values that are much smaller than the constant string::npos might also cause a std::length_error to be thrown, depending on the size of the heap that the program uses. Therefore, it’s best to check the value you pass to the constructor in advance. Alternatively, you can use try and catch statements to handle the exception:
#include <string> #include <stdexcept> //for length_error try { using std::string; string s(string::npos, 'c'); } catch (std::length_error & exc) { // ..handle the exception }