diff options
author | Kenneth Heafield <github@kheafield.com> | 2013-03-28 14:27:11 +0400 |
---|---|---|
committer | Kenneth Heafield <github@kheafield.com> | 2013-03-28 14:27:11 +0400 |
commit | ae53bc91d1a0186d791a98570c544b9999f39bd8 (patch) | |
tree | ed8ec9806f36091cc150d1afb31bf30ca67da115 /moses/Word.cpp | |
parent | eeeda717a41b41db784564c88020f15a2f5bef57 (diff) |
Nicer error message for too many factor delimiters
Diffstat (limited to 'moses/Word.cpp')
-rw-r--r-- | moses/Word.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/moses/Word.cpp b/moses/Word.cpp index c23e8de8c..2c1ac09ea 100644 --- a/moses/Word.cpp +++ b/moses/Word.cpp @@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include "Word.h" #include "TypeDef.h" #include "StaticData.h" // needed to determine the FactorDelimiter +#include "util/exception.hh" #include "util/tokenize_piece.hh" using namespace std; @@ -95,6 +96,8 @@ std::string Word::GetString(FactorType factorType) const return NULL; } +class StrayFactorException : public util::Exception {}; + void Word::CreateFromString(FactorDirection direction , const std::vector<FactorType> &factorOrder , const StringPiece &str @@ -106,7 +109,7 @@ void Word::CreateFromString(FactorDirection direction for (size_t ind = 0; ind < factorOrder.size() && fit; ++ind, ++fit) { m_factorArray[factorOrder[ind]] = factorCollection.AddFactor(*fit); } - CHECK(!fit); + UTIL_THROW_IF(fit, StrayFactorException, "You have configured " << factorOrder.size() << " factors but the word " << str << " contains factor delimiter " << StaticData::Instance().GetFactorDelimiter() << " too many times."); // assume term/non-term same for all factors m_isNonTerminal = isNonTerminal; |