]> SALOME platform Git repositories - plugins/netgenplugin.git/commitdiff
Salome HOME
PAL13330 (When mesh generation does not success, trace where) T_EDF_15278 T_PAL_15278 V3_2_6 V3_2_6pre5
authoreap <eap@opencascade.com>
Wed, 18 Apr 2007 12:56:44 +0000 (12:56 +0000)
committereap <eap@opencascade.com>
Wed, 18 Apr 2007 12:56:44 +0000 (12:56 +0000)
     Catch SIGSEGV in Netgen

src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx

index 560aef1959e06a3a446399c77ec8f63af7628956..7a0eb7eb83beb4bfd2ff4af2a4d04dda7fcf349d 100644 (file)
@@ -44,6 +44,9 @@ using namespace std;
 #include <TopExp_Explorer.hxx>
 #include <TopoDS.hxx>
 
+#include <Standard_Failure.hxx>
+#include <Standard_ErrorHandler.hxx>
+
 #include "utilities.h"
 
 #include <list>
@@ -314,10 +317,16 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh&         aMesh,
   Ng_Result status;
 
   try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
     status = Ng_GenerateVolumeMesh(Netgen_mesh, &Netgen_param);
   }
+  catch (Standard_Failure& exc) {
+    error(COMPERR_OCC_EXCEPTION, exc.GetMessageString());
+    status = NG_VOLUME_FAILURE;
+  }
   catch (...) {
-    MESSAGE("An exception has been caught during the Volume Mesh Generation ...");
     error(dfltErr(), "Exception in Ng_GenerateVolumeMesh()");
     status = NG_VOLUME_FAILURE;
   }