]> granicus.if.org Git - icinga2/commitdiff
Improve error message for failed casts
authorGunnar Beutner <gunnar@beutner.name>
Thu, 29 Jan 2015 15:51:47 +0000 (16:51 +0100)
committerGunnar Beutner <gunnar@beutner.name>
Thu, 29 Jan 2015 15:51:47 +0000 (16:51 +0100)
refs #6070

lib/base/value-operators.cpp

index a352717579844316dd9545262dc6a2ba6953bde8..3c5e8d989734350ef61d5548c137c784263eb690 100644 (file)
@@ -42,7 +42,13 @@ Value::operator double(void) const
        if (IsEmpty())
                return 0;
 
-       return boost::lexical_cast<double>(m_Value);
+       try {
+               return boost::lexical_cast<double>(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