bad_expression
-
class regex_error : public std::runtime_error
regex_error
クラスは、正規表現を表す文字列を有限状態マシンに変換する際に発生したエラーを報告するのに投げられる例外オブジェクトの型を定義する。
概要
#include <boost/pattern_except.hpp>
namespace boost{
class regex_error : public std::runtime_error
{
public:
explicit regex_error(const std::string& s, regex_constants::error_type err, std::ptrdiff_t pos);
explicit regex_error(boost::regex_constants::error_type err);
boost::regex_constants::error_type code()const;
std::ptrdiff_t position()const;
};
typedef regex_error bad_pattern; // 後方互換のため
typedef regex_error bad_expression; // 後方互換のため
} // namespace boost
説明
-
regex_error(const std::string &s, regex_constants::error_type err, std::ptrdiff_t pos)
-
regex_error(boost::regex_constants::error_type err)
- 効果
regex_error
クラスのオブジェクトを構築する。
-
boost::regex_constants::error_type code() const
- 効果
発生した解析エラーを表すエラーコードを返す。
-
std::ptrdiff_t position() const
- 効果
解析が停止した正規表現内の位置を返す。
補足
regex_error
の基本クラスに std::runtime_error
を選択したことについては議論の余地がある。ライブラリの使い方という点では、例外は論理エラー(プログラマが正規表現を与える)、実行時エラー(ユーザが正規表現を与える)のいずれでもよいと考えられる。このライブラリは以前はエラーに bad_pattern
と bad_expression
を使っていたが、Technical Report on C++ Library Extension と同期をとるために regex_error
クラスに一本化した。