From 4539bd90b70d647ce4ef3f06a5ecd35d8cdc415b Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 3 Nov 2019 19:01:27 +0100 Subject: [PATCH] handle possible exceptions for FreeCAD.Units.Unit(input string) --- src/Base/UnitPyImp.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Base/UnitPyImp.cpp b/src/Base/UnitPyImp.cpp index cbce411eb4..768abd2b30 100644 --- a/src/Base/UnitPyImp.cpp +++ b/src/Base/UnitPyImp.cpp @@ -76,8 +76,14 @@ int UnitPy::PyInit(PyObject* args, PyObject* /*kwd*/) if (PyArg_ParseTuple(args,"et", "utf-8", &string)) { QString qstr = QString::fromUtf8(string); PyMem_Free(string); - *self = Quantity::parse(qstr).getUnit(); - return 0; + try { + *self = Quantity::parse(qstr).getUnit(); + return 0; + } + catch (const Base::Exception& e) { + PyErr_SetString(PyExc_RuntimeError, e.what()); + return -1; + } } PyErr_SetString(PyExc_TypeError, "Either string, (float,8 ints), Unit() or Quantity()");