diff --git a/lib/base/value-operators.cpp b/lib/base/value-operators.cpp index a35271757..3c5e8d989 100644 --- a/lib/base/value-operators.cpp +++ b/lib/base/value-operators.cpp @@ -42,7 +42,13 @@ Value::operator double(void) const if (IsEmpty()) return 0; - return boost::lexical_cast(m_Value); + try { + return boost::lexical_cast(m_Value); + } catch (const std::exception&) { + std::ostringstream msgbuf; + msgbuf << "Can't convert '" << *this << "' to a floating point number."; + BOOST_THROW_EXCEPTION(std::invalid_argument(msgbuf.str())); + } } Value::operator String(void) const