Index: /trunk/SophyaLib/NTools/dates.cc
===================================================================
--- /trunk/SophyaLib/NTools/dates.cc	(revision 2508)
+++ /trunk/SophyaLib/NTools/dates.cc	(revision 2509)
@@ -428,40 +428,41 @@
     if (p[0] == '?' && (p[1] == '?' || p[1] == '/'))   JJ = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
-      if (!isdigit(p[1]) && p[1] != '/') ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
+      if (!isdigit(p[1]) && p[1] != '/') throw ParmError(PExcLongMessage(""));
       JJ = atoi(p);
-      if (JJ <= 0) ParmError(PExcLongMessage(""));
+      if (JJ <= 0) throw ParmError(PExcLongMessage(""));
     }
     
     if (p[1] == '/') p += 2;
     else if (p[2] == '/') p+= 3;
-    else ParmError(PExcLongMessage(""));
+    else throw ParmError(PExcLongMessage(""));
 
     if (p[0] == '?' && (p[1] == '?' || p[1] == '/'))   MM = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
-      if (!isdigit(p[1]) && p[1] != '/') ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
+      if (!isdigit(p[1]) && p[1] != '/') throw ParmError(PExcLongMessage(""));
       MM = atoi(p);
-      if (MM <= 0 || MM >12) ParmError(PExcLongMessage(""));
+      if (MM <= 0 || MM >12) throw ParmError(PExcLongMessage(""));
     }
 
     if (p[1] == '/') p += 2;
     else if (p[2] == '/') p+= 3;
-    else ParmError(PExcLongMessage(""));
+    else throw ParmError(PExcLongMessage(""));
 
     if (p[0] == '?')  AA = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
-      if (!isdigit(p[1])) ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
+      if (!isdigit(p[1])) throw ParmError(PExcLongMessage(""));
       AA = atoi(p);
       if (AA < 100 && AA >= 0 && date[6] != '0') AA += 1900;
     }
     
-    if (AA > 0 && MM > 0 && JJ > 0 && JJ > MonthDays(MM,AA)) ParmError(PExcLongMessage(""));
+    if (AA > 0 && MM > 0 && JJ > 0 && JJ > MonthDays(MM,AA)) 
+      throw ParmError(PExcLongMessage(""));
     
    } else if (strlen(date)==4) {      // Code EROS de date
      if (date[0] == '?') AA = -1;
      else {
-       if (!isdigit(date[0])) ParmError(PExcLongMessage(""));
+       if (!isdigit(date[0])) throw ParmError(PExcLongMessage(""));
        AA = 1990 + date[0] - '0';
      }
@@ -469,22 +470,23 @@
      if (date[1] == '?') MM = -1;
      else {
-       if (!isalpha(date[1])) ParmError(PExcLongMessage(""));
+       if (!isalpha(date[1])) throw ParmError(PExcLongMessage(""));
        if (islower(date[1]))
          MM = date[1] - 'a' + 1;
        else
          MM = date[1] - 'A' + 1;
-       if (MM<1 || MM>12) ParmError(PExcLongMessage(""));
+       if (MM<1 || MM>12) throw ParmError(PExcLongMessage(""));
      }
      
      if (date[2] == '?' && date[3] == '?') JJ = -1;
      else {
-       if (!isdigit(date[2])) ParmError(PExcLongMessage(""));
-       if (!isdigit(date[3])) ParmError(PExcLongMessage(""));
+       if (!isdigit(date[2])) throw ParmError(PExcLongMessage(""));
+       if (!isdigit(date[3])) throw ParmError(PExcLongMessage(""));
        JJ = atoi(date+2);
      }
      
-     if (AA > 0 && MM > 0 && JJ > 0 && JJ > MonthDays(MM,AA)) ParmError(PExcLongMessage(""));
+     if (AA > 0 && MM > 0 && JJ > 0 && JJ > MonthDays(MM,AA)) 
+       throw ParmError(PExcLongMessage(""));
      nuit = 1;
-   } else ParmError(PExcLongMessage(""));   // Mauvaise longueur
+   } else throw ParmError(PExcLongMessage(""));   // Mauvaise longueur
   } else {                          // Pas de date
     JJ = MM = AA = -1;
@@ -495,6 +497,6 @@
     if (p[0] == '?' && (p[1] == '?' || p[1] == ':'))   hh = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
-      if (!isdigit(p[1]) && p[1] != ':') ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
+      if (!isdigit(p[1]) && p[1] != ':') throw ParmError(PExcLongMessage(""));
       hh = atoi(p);
     }
@@ -502,10 +504,10 @@
     if (p[1] == ':') p += 2;
     else if (p[2] == ':') p+= 3;
-    else ParmError(PExcLongMessage(""));
+    else throw ParmError(PExcLongMessage(""));
 
     if (p[0] == '?' && (p[1] == '?' || p[1] == ':'))   mm = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
-      if (!isdigit(p[1]) && p[1] != '/') ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
+      if (!isdigit(p[1]) && p[1] != '/') throw ParmError(PExcLongMessage(""));
       mm = atoi(p);
     }
@@ -513,9 +515,9 @@
     if (p[1] == ':') p += 2;
     else if (p[2] == ':') p+= 3;
-    else ParmError(PExcLongMessage(""));
+    else throw ParmError(PExcLongMessage(""));
 
     if (p[0] == '?')   ss = -1;
     else {
-      if (!isdigit(p[0])) ParmError(PExcLongMessage(""));
+      if (!isdigit(p[0])) throw ParmError(PExcLongMessage(""));
       ss = atoi(p);
     }
@@ -578,5 +580,5 @@
 
   if (dt.AA != -1) {
-    if (dt.AA < 1990 || dt.AA > 2016) ParmError(PExcLongMessage(""));
+    if (dt.AA < 1990 || dt.AA > 2016) throw ParmError(PExcLongMessage(""));
     int i = dt.AA - 1990;
     if (i<10)
@@ -764,6 +766,6 @@
 //--
 {
-  if (a.UndetTime() != b.UndetTime()) ParmError(PExcLongMessage(""));
-  if (a.UndetDate() != b.UndetDate()) ParmError(PExcLongMessage(""));
+  if (a.UndetTime() != b.UndetTime()) throw ParmError(PExcLongMessage(""));
+  if (a.UndetDate() != b.UndetDate()) throw ParmError(PExcLongMessage(""));
   return a.GetDays() - b.GetDays();
 }
