[java] question sur la gestion des erreurs

question sur la gestion des erreurs [java] - Programmation

Marsh Posté le 17-01-2002 à 07:51:33    

salut, j'ai encore des questions !!
 
maintenant voici mon prbléme ,je veux créer un objet Date dans mon main ,mais je veux controler que la date entré soit valide
 
exemple :
 
Date d=new Date(32,05,2002);
 
 
pour ça je veux faire une classe DateException,et je veux modifer la classe Date pour qu'elle fasse ce controle d'erreur.
ma question c'est que je comprends pas ce que doit contenir la class DateException je dois mettre mes test de validité dedans ?
 
dans la matinée je posterai mon code qui marche pas .

Reply

Marsh Posté le 17-01-2002 à 07:51:33   

Reply

Marsh Posté le 17-01-2002 à 08:32:38    

Si tu veux controler que la date suit un pattern bien précis, tu as des outils qui te sont donnés. Suppose que ton utilisateur doit entre la date du 24 juin 1978 comme suit:
 
24-06-1978
 
Tu peux faire un truc du genre
 

Code :
  1. public static Date getDate(String date)
  2.     throws ParseException
  3. {
  4.    try {
  5.       SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy" );
  6.       return (df.parse(param));
  7.    }
  8.    catch (ParseException)
  9.    {
  10.       // do what you want here in case of exception
  11.    }
  12.    return null;
  13. }


 
Hope it helps
 
A+  :hello:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 09:37:26    

darklord22 a écrit a écrit :

Si tu veux controler que la date suit un pattern bien précis, tu as des outils qui te sont donnés. Suppose que ton utilisateur doit entre la date du 24 juin 1978 comme suit:
 
24-06-1978
 
Tu peux faire un truc du genre
 

Code :
  1. public static Date getDate(String date)
  2.     throws ParseException
  3. {
  4.    try {
  5.       SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy" );
  6.       return (df.parse(param));
  7.    }
  8.    catch (ParseException)
  9.    {
  10.       // do what you want here in case of exception
  11.    }
  12.    return null;
  13. }


 
Hope it helps
 
A+  :hello:  




 
oui ok mais moi je veux aprrendre a tout refaire moi meme ,j'aime bien reinventer la roue :lol:
je suis en train de faire le prog si j'y arrive toujours pas je posterai mon code ici !!!!

Reply

Marsh Posté le 17-01-2002 à 10:09:08    

cool j'ai reussi ,enfin je crois  !!!!!
mais je me demande si c'est comme ça qu'il faut faire :
 
class Date
{
int jour;
int mois;
int annee;
 
Date(int j,int m,int a) throws DateException {
 
 
if (j>=1 && j<=30 && m>=1 && m<=12 && a>= 0)
{
jour =j;
mois =m;
annee=a;
System.out.println("Date ok" );
}
 
else throw new DateException("erreur date nom valide" );
 
 
}
}
//////////////////////////////////////
 
public class DateException extends Exception {
DateException(String m) {
super(m);
}
}
 
/////////////////////////////////////////////////////
class test {
 
 
 
public static void main (String args[] ) throws DateException
{
 
  Date d=new Date (29,5,2001);
 }
 
 }

Reply

Marsh Posté le 17-01-2002 à 10:12:24    

euh oui sauf que tu es completement out en terme de philo java. Tu crées une nouvelle classe Date au lieu d'étendre la Date java existante. Donc tu crées un objet concurent qui est censé représenter le même concept
 
Au niveau syntaxe je ne vois pas d'erreur majeure. Pour ce qui est du reste. Si tu veux réinventer la roue, ne développe pas en Jave (ca va t'amener plus de problèmes que d'expérience)
 
A+


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 10:13:17    

Drakkeng a écrit a écrit :

 
 
oui ok mais moi je veux aprrendre a tout refaire moi meme ,j'aime bien reinventer la roue :lol:
je suis en train de faire le prog si j'y arrive toujours pas je posterai mon code ici !!!!  




 
Tu peux apprendre à créer une exception qui t'es propre sans devoir réinventer la roue ...


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 10:22:51    

darklord22 a écrit a écrit :

euh oui sauf que tu es completement out en terme de philo java. Tu crées une nouvelle classe Date au lieu d'étendre la Date java existante. Donc tu crées un objet concurent qui est censé représenter le même concept
 
Au niveau syntaxe je ne vois pas d'erreur majeure. Pour ce qui est du reste. Si tu veux réinventer la roue, ne développe pas en Jave (ca va t'amener plus de problèmes que d'expérience)
 
A+  




 
non ,mais la j'ai pris Date comme exemple car j'avais pas d'idée je developpe pas d'application utilisant ça ,j'essai juste de réviser avant mon partiel ,sinon je serai le premier a regarder dans la doc les class qui existent deja pour les utiliser.

Reply

Marsh Posté le 17-01-2002 à 10:37:50    

Drakkeng a écrit a écrit :

 
 
non ,mais la j'ai pris Date comme exemple car j'avais pas d'idée je developpe pas d'application utilisant ça ,j'essai juste de réviser avant mon partiel ,sinon je serai le premier a regarder dans la doc les class qui existent deja pour les utiliser.  




 
okidoki  :sol:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 16:51:40    

remarque que si tu veux faire ca bien, tu peux rajouter des attributs supplémentaires dans ta classe DateException, comme par exemple le jour, le mois et l'année avec les getter correspondant. Ca te permet de faire des messages d'érreur pertinent quand tu catch l'erreur.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 17-01-2002 à 18:06:20    

benou a écrit a écrit :

remarque que si tu veux faire ca bien, tu peux rajouter des attributs supplémentaires dans ta classe DateException, comme par exemple le jour, le mois et l'année avec les getter correspondant. Ca te permet de faire des messages d'érreur pertinent quand tu catch l'erreur.  




 
oui d'ailleurs je capte pas pourquoi les class gérant les exceptions sont pratiquement vide en général ,moi je serai tenté de faire les tests de validé dans la classe DateException ,mais j'ai pas reussi .

Reply

Marsh Posté le 17-01-2002 à 18:06:20   

Reply

Marsh Posté le 17-01-2002 à 18:12:57    

Drakkeng a écrit a écrit :

 
 
oui d'ailleurs je capte pas pourquoi les class gérant les exceptions sont pratiquement vide en général ,moi je serai tenté de faire les tests de validé dans la classe DateException ,mais j'ai pas reussi .  




 
Bin si l'exception est levée ca veut dire qu'il y a eu un probleme par définition. Donc c'est un peu tard pour tester quoi que ce soit puisqe l'erreur a déjà eu lieu ...


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 18:16:01    

darklord22 a écrit a écrit :

 
 
Bin si l'exception est levée ca veut dire qu'il y a eu un probleme par définition. Donc c'est un peu tard pour tester quoi que ce soit puisqe l'erreur a déjà eu lieu ...  




 
je comprends pas tout mais tu dois avoir raison !!!

Reply

Marsh Posté le 17-01-2002 à 18:20:51    

Drakkeng a écrit a écrit :

 
 
je comprends pas tout mais tu dois avoir raison !!!  




 
Bon la sémantique d'une exception en Java est la suivante. Suppose que tu crées CannotDivideByZeroException et que tu as une méthode  
 
public int divide (int a, int b)
 throws CannotDivideByZeroException
{
    if (b == 0)
       throw new CannotDivideByZeroException();
    else
       return (a/b);
}
 
A quoi ca te sert de checker quoi que ce soit dans le code de ton exception !!!!  :??:  :??:  
 
Ton programme client peut faire un truc du genre
 
try {
 /// bla bla bla
 int b = divide(c,d);
}
catch (CannotDivideException cde)
{
   // la tu sais qu'il y a eu une division par zero et donc tu peux faire qqch de précis
}
catch (AutreException cde)
{
   // la tu sais qu'il y a eu une exception machin chose et donc tu peux faire qqch de précis
}
 
C'est plus clair ?


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 17-01-2002 à 18:24:34    

darklord22 a écrit a écrit :

 
 
Bon la sémantique d'une exception en Java est la suivante. Suppose que tu crées CannotDivideByZeroException et que tu as une méthode  
 
public int divide (int a, int b)
 throws CannotDivideByZeroException
{
    if (b == 0)
       throw new CannotDivideByZeroException();
    else
       return (a/b);
}
 
A quoi ca te sert de checker quoi que ce soit dans le code de ton exception !!!!  :??:  :??:  
 
Ton programme client peut faire un truc du genre
 
try {
 /// bla bla bla
 int b = divide(c,d);
}
catch (CannotDivideException cde)
{
   // la tu sais qu'il y a eu une division par zero et donc tu peux faire qqch de précis
}
catch (AutreException cde)
{
   // la tu sais qu'il y a eu une exception machin chose et donc tu peux faire qqch de précis
}
 
C'est plus clair ?  




 
oui merci ,ça m'aide bien !!
en fait il faut que je me sorte de l'esprit que l'exception c'est juste un test de validé ,je comprends le concpet maintenant.
 
mais arrête de m'aider !!!!
je te fais perdre beaucoup trop  de temps !!!!

 

[edtdd]--Message édité par Drakkeng--[/edtdd]

Reply

Marsh Posté le 17-01-2002 à 18:25:20    

Drakkeng a écrit a écrit :

 
 
oui merci ,ça m'aide bien !!
en fait il faut que je me sorte de l'esprit que l'exception c'est juste un test de validé ,je comprends le concpet maintenant.
 
mais arrête de m'aider !!!!
je te fais perdre beaucoup trop  de temps !!!!  
 
 




 
you're welcome !  :hello:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed