question sur la gestion des erreurs [java] - Programmation
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 :
|
Hope it helps
A+
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
|
oui ok mais moi je veux aprrendre a tout refaire moi meme ,j'aime bien reinventer la roue
je suis en train de faire le prog si j'y arrive toujours pas je posterai mon code ici !!!!
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);
}
}
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+
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 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 ...
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.
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
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.
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 .
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 ...
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 !!!
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 ?
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]
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 !
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 .