Salome HOME
bos #17015 [CEA 17008] Body fitting with Viscous Layers for CFD meshing
[modules/smesh.git] / src / SMESHUtils / SMESH_TryCatch.hxx
index 18b9eecaacc92f995c6328ce5a201426f70f7d23..9f8e9c608a05a13a15363c21cdd8f0712c166c42 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,7 +33,6 @@
 #include <Utils_SALOME_Exception.hxx>
 #include <Standard_Failure.hxx>
 #include <Standard_ErrorHandler.hxx>
-#include <Basics_OCCTVersion.hxx>
 #include <utilities.h>
 
 // IMPORTANT: include this file _after_ OCC ones, else OCC_CATCH_SIGNALS can be undefined!
 #define OCC_CATCH_SIGNALS
 #endif
 
-// Define macros to catch and convert some of possible exceptions into text or SALOME_Exception
+// Define macros to catch and convert some of possible exceptions into text or SALOME_Exception.
+// WARNING: SALOME::SALOME_Exception (CORBA exception) is not treated here; to care about it add
+//          #define SMY_OWN_CATCH catch ( SALOME::SALOME_Exception & e ) { do_something(e); }
+//          before #include<SMESH_TryCatch.hxx>
+
 
 //-------------------------------------------------------------------------------------
 #define SMESH_TRY                               \
 
 //-------------------------------------------------------------------------------------
 // A macro makes description of a caught exception and calls onExceptionFun(const char*).
-// Two onExceptionFun() are defined here: SMESH::throwSalomeEx() and SMESH::doNothing().
-// To add your own catch close, define SMY_OWN_CATCH macro before including this file.
+// Several onExceptionFun() are defined here: throwSalomeEx(), doNothing() and returnError().
+// To add your own catch clause, define SMY_OWN_CATCH macro before including this file.
 
 #define SMESH_CATCH( onExceptionFun )                                   \
   }                                                                     \
+                                                                        \
+  SMY_OWN_CATCH                                                         \
+                                                                        \
   catch (Standard_Failure& ex)                                          \
   {                                                                     \
     SMESH_Comment text("OCCT Exception: ");                             \
@@ -89,9 +95,6 @@
   {                                                                     \
     SMESH_CAUGHT onExceptionFun( ex.what() );                           \
   }                                                                     \
-                                                                        \
-  SMY_OWN_CATCH                                                         \
-                                                                        \
   catch (...)                                                           \
   {                                                                     \
     SMESH_CAUGHT onExceptionFun("Unknown Exception caught");            \
@@ -104,6 +107,8 @@ namespace SMESH
 {
   SMESHUtils_EXPORT void throwSalomeEx(const char* txt);
   SMESHUtils_EXPORT void doNothing(const char* txt);
+  SMESHUtils_EXPORT const char* returnError(const char* txt);
+  SMESHUtils_EXPORT void printErrorInDebugMode(const char* txt);
 }
 
 #endif