Salome HOME
sauve du 20/12
[tools/eficas.git] / Noyau / N_Exception.py
index 48ae9f79eb27dec9ba9fe8958eb2e6cb5d9b83bf..4d396fc892f5d10d73ec6a4723f13e7a22cbfc7c 100644 (file)
@@ -1,40 +1,48 @@
-#@ MODIF N_Exception Noyau  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-#                                                                       
-#                                                                       
 # ======================================================================
-""" 
+
+"""
    Ce module contient la classe AsException
 """
 
-# Modules Python
-import types
+# Modules EFICAS
+from strfunc import get_encoding, to_unicode
+
 
 class AsException(Exception):
-  def __str__(self):
-    if not self.args:
-      return ''
-    elif len(self.args) == 1:
-      return str(self.args[0])
-    else:
-      s=''
-      for e in self.args:
-        if type(e) == types.StringType: s=s+ ' ' + e
-        else:s=s+ ' ' + str(e)
-      return s
 
+    def __unicode__(self):
+        args = []
+        for x in self.args:
+            ustr = to_unicode(x)
+            if type(ustr) is not unicode:
+                ustr = unicode( repr(x) )
+            args.append(ustr)
+        return " ".join(args)
+
+    def __str__(self):
+        return unicode(self).encode(get_encoding())
+
+
+class InterruptParsingError(Exception):
+
+    """Exception used to interrupt the parsing of the command file
+    without raising an error (see N_JDC.exec_compile for usage)"""