std::regex_error

来源:互联网 发布:苹果电脑系统备份软件 编辑:程序博客网 时间:2024/06/04 18:46
Regex exception
Objects of this exception type are thrown by the elements of the regex library.

It inherits from the standard exception runtime_error, and has a special public member function, code, which returns a specific code of typeregex_constants::error_type depending on the kind of error that threw it:

flagerrorerror_collateThe expression contained an invalid collating element name.error_ctypeThe expression contained an invalid character class name.error_escapeThe expression contained an invalid escaped character, or a trailing escape.error_backrefThe expression contained an invalid back reference.error_brackThe expression contained mismatched brackets ([ and ]).error_parenThe expression contained mismatched parentheses (( and )).error_braceThe expression contained mismatched braces ({ and }).error_badbraceThe expression contained an invalid range between braces ({ and }).error_rangeThe expression contained an invalid character range.error_spaceThere was insufficient memory to convert the expression into a finite state machine.error_badrepeatThe expression contained a repeat specifier (one of *?+{) that was not preceded by a valid regular expression.error_complexityThe complexity of an attempted match against a regular expression exceeded a pre-set level.error_stackThere was insufficient memory to determine whether the regular expression could match the specified character sequence.

Member functions

explicit regex_error (regex_constants::error_type ecode);
Constructs a regex exception with error codeecode.
regex_constants::error_type code() const;
Returns the error code with which it was constructed.
regex_constants::error_type is an enumerated type designed to uniquely identify errors in theregex library (seeregex_constants for more info).

Example

123456789101112131415
// regex_error#include <iostream>#include <regex>int main (){  try {     std::regex myregex ("*");  } catch (std::regex_error& e) {     if (e.code() == std::regex_constants::error_badrepeat)       std::cerr << "Repeat was not preceded by a valid regular expression.\n";     else std::cerr << "Some other regex exception happened.\n";  }  return 0;}
Edit & Run


Output (stderr):
Repeat was not preceded by a valid regular expression.

See also

0 0