Salome HOME
Copyright update 2021
[modules/kernel.git] / src / KERNEL_PY / kernel / uiexception.py
index e6256f3e91c1748334ad23813e3ce99584852619..702b15863aa799594d8d1a086601a8dbb97fcdb6 100644 (file)
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2010-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2010-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # 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
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
+## \defgroup uiexception uiexception
+#  \{ 
+#  \details Exception for user error management
+#  \}
+
 __author__="gboulant"
 __date__ ="$31 mars 2010 11:59:33$"
 
-from enumerate import Enumerate
+from .enumerate import Enumerate
 
+## This exception should be used for functionnal error management, at least in the GUI
+#  part of the application, for example to set user oriented messages at point
+#  of exception raise.
+#  \warning The exception should NOT be used to hide defaults in the algorithm, but
+#  only predicted error in the specified use case.
+#  \ingroup uiexception
 class UiException(Exception):
 
     TYPES = Enumerate([
@@ -40,6 +52,8 @@ class UiException(Exception):
     WARN: The exception should NOT be used to hide defaults in the algorithm, but
     only predicted error in the specified use case.
     """
+    
+    ## Canonical constructor
     def __init__(self, message, type=TYPES.USER):
         """Canonical constructor"""
         Exception.__init__(self,message)
@@ -52,8 +66,9 @@ class UiException(Exception):
     def getUIMessage(self):
         return self._UImessage
 
+    ## Specify the type of this exception. To be chosen in the TYPES list.
     def setType(self, type):
-        """Specify the type of this exception. To be choosen in the TYPES list."""
+        """Specify the type of this exception. To be chosen in the TYPES list."""
         if not self.TYPES.isValid(type):
             raise UiException("The exception type "+str(type)+" can't be used",self.TYPES.DEVEL)
         self._type = type
@@ -86,21 +101,21 @@ def TEST_uimessage():
     try:
         somethingGoesWrong()
         return False
-    except UiException, err:
-        print 'ERROR: %s' % str(err)
+    except UiException as err:
+        print('ERROR: %s' % str(err))
         if ( str(err) == "Something goes wrong" ):
             return True
         else:
             return False
 
 def TEST_specificException():
-    print DevelException("err")
-    print AdminException("err")
-    print UserException("err")
+    print(DevelException("err"))
+    print(AdminException("err"))
+    print(UserException("err"))
     return True
 
 if __name__ == "__main__":
-    import unittester
+    from . import unittester
     unittester.run("uiexception","TEST_uimessage")
     unittester.run("uiexception","TEST_specificException")