diff --git a/src/Base/Quantity.cpp b/src/Base/Quantity.cpp index 446e0dd555..918956f043 100644 --- a/src/Base/Quantity.cpp +++ b/src/Base/Quantity.cpp @@ -96,7 +96,7 @@ Quantity::Quantity(double value, const QString& unit) this->_Unit = tmpQty.getUnit(); this->_Value = value * tmpQty.getValue(); } - catch (const Base::Exception&) { + catch (const Base::ParserError&) { this->_Value = 0.0; this->_Unit = Unit(); } diff --git a/src/Base/QuantityPyImp.cpp b/src/Base/QuantityPyImp.cpp index ccfce27c12..7da2c1b199 100644 --- a/src/Base/QuantityPyImp.cpp +++ b/src/Base/QuantityPyImp.cpp @@ -131,7 +131,7 @@ int QuantityPy::PyInit(PyObject* args, PyObject* /*kwd*/) try { *self = Quantity::parse(qstr); } - catch(const Base::Exception& e) { + catch(const Base::ParserError& e) { PyErr_SetString(PyExc_ValueError, e.what()); return -1; } @@ -146,7 +146,7 @@ int QuantityPy::PyInit(PyObject* args, PyObject* /*kwd*/) try { *self = Quantity(f, unit); } - catch(const Base::Exception& e) { + catch(const Base::ParserError& e) { PyErr_SetString(PyExc_ValueError, e.what()); return -1; } diff --git a/src/Base/Unit.cpp b/src/Base/Unit.cpp index f2e0786288..d13c464927 100644 --- a/src/Base/Unit.cpp +++ b/src/Base/Unit.cpp @@ -107,7 +107,7 @@ Unit::Unit(const QString& expr) try { *this = Quantity::parse(expr).getUnit(); } - catch (...) { + catch (const Base::ParserError&) { Sig.Length = 0; Sig.Mass = 0; Sig.Time = 0; diff --git a/src/Base/UnitPyImp.cpp b/src/Base/UnitPyImp.cpp index de20be1ce1..063168c1c7 100644 --- a/src/Base/UnitPyImp.cpp +++ b/src/Base/UnitPyImp.cpp @@ -90,8 +90,8 @@ int UnitPy::PyInit(PyObject* args, PyObject* /*kwd*/) *self = Quantity::parse(qstr).getUnit(); return 0; } - catch (const Base::Exception& e) { - PyErr_SetString(PyExc_RuntimeError, e.what()); + catch (const Base::ParserError& e) { + PyErr_SetString(PyExc_ValueError, e.what()); return -1; } } diff --git a/src/Base/UnitsApiPy.cpp b/src/Base/UnitsApiPy.cpp index e1a5fd1708..103a7b9c1b 100644 --- a/src/Base/UnitsApiPy.cpp +++ b/src/Base/UnitsApiPy.cpp @@ -154,13 +154,9 @@ PyObject* UnitsApi::sParseQuantity(PyObject * /*self*/, PyObject *args) try { rtn = Quantity::parse(qstr); } - catch (const Base::Exception&) { - PyErr_Format(PyExc_IOError, "invalid unit expression \n"); - return 0L; - } - catch (const std::exception&) { - PyErr_Format(PyExc_IOError, "invalid unit expression \n"); - return 0L; + catch (const Base::ParserError&) { + PyErr_Format(PyExc_ValueError, "invalid unit expression \n"); + return nullptr; } return new QuantityPy(new Quantity(rtn)); diff --git a/src/Gui/QuantitySpinBox.cpp b/src/Gui/QuantitySpinBox.cpp index 91d1e497df..d40f0f02b0 100644 --- a/src/Gui/QuantitySpinBox.cpp +++ b/src/Gui/QuantitySpinBox.cpp @@ -150,7 +150,7 @@ public: value = result.getValue(); return true; } - catch (Base::Exception&) { + catch (Base::ParserError&) { return false; } } @@ -631,7 +631,7 @@ void QuantitySpinBox::setUnitText(const QString& str) Base::Quantity quant = Base::Quantity::parse(str); setUnit(quant.getUnit()); } - catch (const Base::Exception&) { + catch (const Base::ParserError&) { } }