Salome HOME
PR: exception handling
authorprascle <prascle>
Fri, 31 Mar 2006 11:07:19 +0000 (11:07 +0000)
committerprascle <prascle>
Fri, 31 Mar 2006 11:07:19 +0000 (11:07 +0000)
src/LifeCycleCORBA_SWIG/Makefile.am
src/LifeCycleCORBA_SWIG/libSALOME_LifeCycleCORBA.i

index e81652376f77d874be9361fd266e4b5289d20374..996f32c5ed6197b4fb97805dbf70cfe7487f824b 100644 (file)
@@ -60,7 +60,9 @@ pkgpyexec_LTLIBRARIES = _libSALOME_LifeCycleCORBA.la
 _libSALOME_LifeCycleCORBA_la_SOURCES  = $(BUILT_SOURCES) $(SWIG_SOURCES)
 _libSALOME_LifeCycleCORBA_la_CPPFLAGS =\
        @PYTHON_INCLUDES@ \
-       -I$(srcdir) -I$(srcdir)/../LifeCycleCORBA \
+       -I$(srcdir) \
+       -I$(srcdir)/../NamingService \
+       -I$(srcdir)/../LifeCycleCORBA \
        -I$(srcdir)/../Basics \
        -I$(srcdir)/../SALOMELocalTrace \
        -I$(srcdir)/../Utils \
index f6391d93040f1078dc0a90844a68b687436f8233..c9f3f0d3ce3466b7a9231407a06c75c6df3613b4 100644 (file)
@@ -24,7 +24,8 @@
 %{
 #include "utilities.h"
 #include "SALOME_LifeCycleCORBA.hxx"
-
+#include "SALOME_NamingService.hxx"
+#include "ServiceUnreachable.hxx"
 
   using namespace std;
 
@@ -70,6 +71,21 @@ struct omniORBpyAPI {
 %}
 
 
+%exception {
+    try {
+      $action
+    }
+    catch (ServiceUnreachable) {
+      PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable");
+      return NULL;
+    }
+    catch (...) {
+      PyErr_SetString(PyExc_RuntimeError, "unknown exception");
+      return NULL;
+    }
+}
+
+
 %typemap(python,out) Engines::Container_ptr, Engines::Component_ptr
 {
   MESSAGE("typemap out on CORBA object ptr");
@@ -90,7 +106,6 @@ struct omniORBpyAPI {
 {
   //printf("typemap in on Engines::MachineParameters\n");
   MESSAGE("typemap in on Engines::MachineParameters");
-  //ASSERT (PyDict_Check($input))
   if (PyDict_Check($input) == 1)
     {
       Engines::MachineParameters *param = new Engines::MachineParameters ;
@@ -145,9 +160,8 @@ struct omniORBpyAPI {
     }
   else 
     {
-       //printf("pas un dico\n");
        MESSAGE("Not a dictionnary");
-       PyErr_SetString(PyExc_TypeError,"MustBe a Python Dictionnary");
+       PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary");
        return NULL;
     }
 }