Base: do not report C++ exception when converting it to Python exception

See https://forum.freecadweb.org/viewtopic.php?f=23&t=56464
This commit is contained in:
wmayer
2021-04-11 14:54:11 +02:00
parent 8c4b2506bd
commit dbbac56185
3 changed files with 0 additions and 9 deletions

View File

@@ -463,12 +463,10 @@ BaseExport extern PyObject* BaseExceptionFreeCADAbort;
#define __PY_CATCH(R) \
catch(Base::AbortException &e) \
{ \
e.ReportException(); \
_Py_ErrorObj(R,Base::BaseExceptionFreeCADAbort,e.getPyObject());\
} \
catch(Base::Exception &e) \
{ \
e.ReportException(); \
auto pye = e.getPyExceptionType(); \
if(!pye) \
pye = Base::BaseExceptionFreeCADError; \

View File

@@ -80,7 +80,6 @@ PartExport extern PyObject* PartExceptionOCCDimensionError;
str += " "; \
if (msg) {str += msg;} \
else {str += "No OCCT Exception Message";} \
Base::Console().Error(str.c_str()); \
_Py_Error(R,Part::PartExceptionOCCError,str.c_str()); \
} \
_PY_CATCH(R)

View File

@@ -615,13 +615,11 @@ PyObject * @self.export.Name@::staticCallback_@i.Name@ (PyObject *self, PyObject
} // Please sync the following catch implementation with PY_CATCH
catch(Base::AbortException &e)
{
e.ReportException();
PyErr_SetObject(Base::BaseExceptionFreeCADAbort,e.getPyObject());
return NULL;
}
catch(Base::Exception &e)
{
e.ReportException();
auto pye = e.getPyExceptionType();
if(!pye)
pye = Base::BaseExceptionFreeCADError;
@@ -790,13 +788,11 @@ PyObject *@self.export.Name@::_getattr(const char *attr) // __getattr__ functi
} // Please sync the following catch implementation with PY_CATCH
catch(Base::AbortException &e)
{
e.ReportException();
PyErr_SetObject(Base::BaseExceptionFreeCADAbort,e.getPyObject());
return NULL;
}
catch(Base::Exception &e)
{
e.ReportException();
auto pye = e.getPyExceptionType();
if(!pye)
pye = Base::BaseExceptionFreeCADError;
@@ -852,13 +848,11 @@ int @self.export.Name@::_setattr(const char *attr, PyObject *value) // __setattr
} // Please sync the following catch implementation with PY_CATCH
catch(Base::AbortException &e)
{
e.ReportException();
PyErr_SetObject(Base::BaseExceptionFreeCADAbort,e.getPyObject());
return -1;
}
catch(Base::Exception &e)
{
e.ReportException();
auto pye = e.getPyExceptionType();
if(!pye)
pye = Base::BaseExceptionFreeCADError;