Remontée d'erreurs par les méthodes JAVA [Résolu]

Gwillherm 24 Messages postés mercredi 29 novembre 2000Date d'inscription 22 février 2006 Dernière intervention - 16 janv. 2006 à 09:57 - Dernière réponse : Gwillherm 24 Messages postés mercredi 29 novembre 2000Date d'inscription 22 février 2006 Dernière intervention
- 18 janv. 2006 à 09:34
Bonjour à tous...
j'aimerai savoir quelle est la meilleur méthode à utiliser pour remontée des erreurs avec les méthodes java que je code.

J'ai une méthode java qui a accepte plusieurs paramètres en argument qui vont ensuite me permettre de construire une trame pour un protocole de communication, mais j'aimerai pouvoir signaler (et même avertir) qu'un paramètre passé est faux.
Jusqu'à présent j'utilisais le mécanisme des exceptions mais je ne suis pas sur que ce soit approprié...

Gwillherm
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
indiana_jules 750 Messages postés mardi 9 mars 2004Date d'inscription 23 décembre 2008 Dernière intervention - 16 janv. 2006 à 16:26
3
Merci
Non les exceptions servent à indiquer les erreurs internes (mauvaises programmations) commer les erreurs externes (fichier introuvable). De ce fait, si tu veux faire une exeption indiquant qu'un de tes arguments est faux, tu peux faire :
if(error){throw new IllegalArgumentException(); }

voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte

Merci indiana_jules 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de indiana_jules
Meilleure réponse
indiana_jules 750 Messages postés mardi 9 mars 2004Date d'inscription 23 décembre 2008 Dernière intervention - 18 janv. 2006 à 09:25
3
Merci
En fait, ce qu'il a voulu dire, c'est que tu crées une exception particuliére avec un message personnalisé, du style :


public void MaDivision(int a, int b) {
if(a<0) {
throw new MauvaisArgumentMaDivision("Premier argument faux");
}
...
}

Voilà, mais ta méthode de renvoyer un code d'erreur est tout aussi valable

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte

Merci indiana_jules 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de indiana_jules
super_toinou 764 Messages postés mardi 25 mai 2004Date d'inscription 8 mars 2011 Dernière intervention - 16 janv. 2006 à 10:12
0
Merci
a mon avis c est tout a fait approprié, les exception servent justement a ca
Commenter la réponse de super_toinou
Gwillherm 24 Messages postés mercredi 29 novembre 2000Date d'inscription 22 février 2006 Dernière intervention - 16 janv. 2006 à 13:20
0
Merci
OK, mais en fait je pensais que les exceptions servaient à remonter des erreurs plus graves...
j'ai bien fouillé toutes des docs java que j'avais et je voulais confirmer ce que je croyais avoir compri :)

Merci de ta réponse rapide
Commenter la réponse de Gwillherm
super_toinou 764 Messages postés mardi 25 mai 2004Date d'inscription 8 mars 2011 Dernière intervention - 16 janv. 2006 à 16:43
0
Merci
je me permet de rajouter également que
tu peux créer tes propres erreures et les attraper a la sortie de ta méthode comme ca tu peux faire le traitement approprié
et les erreures plus graves t es pas obligé de les attraper comme ca ton appli pourra crasher pour de vraies raisons ;)
Commenter la réponse de super_toinou
Gwillherm 24 Messages postés mercredi 29 novembre 2000Date d'inscription 22 février 2006 Dernière intervention - 17 janv. 2006 à 09:31
0
Merci
"tu peux créer tes propres erreures et les attraper a la sortie de ta méthode comme ca tu peux faire le traitement approprié" ->
quand tu dis cela, veux tu entendre par la que je retourne un code d'erreur en sortie de ma méthode ???

C'est ce que j'avais utilisé comme technique au départ :

si erreur sur argument_1 alors retourne valeur 127 (par exemple),
si erreur sur argument_2 alors retourne valeur 126... etc....

mais après étude de la doc java j'ai cru comprendre que ce système là appartenais plus au C++ qu'au JAVA....

Merci de vos réponses
Commenter la réponse de Gwillherm
Gwillherm 24 Messages postés mercredi 29 novembre 2000Date d'inscription 22 février 2006 Dernière intervention - 18 janv. 2006 à 09:34
0
Merci
Merci pour toutes ces info qui levent un flou "artistique" sur ma compréhension des remontées d'erreurs en JAVA
Voici ce que ça donne en utilisant la méthodes des Exceptions :

public static byte[] readDiscretInputs(int st_add, int nb_inputs)throws ModbusException{

/* variables declaration */
byte[] tramePDU = new byte[5];

/* test of the parameters and filling of the array tramePDU */
if ((st_add < MIN_ADDRESS)||(st_add > MAX_ADDRESS)){

/* st_add parameter error */
throw new ModbusException("No valid address !");

}
else if ((nb_inputs < MIN_INPUTS)||(nb_inputs > MAX_INPUTS)){

/* nb_inputs parameter error */
throw new ModbusException("No valid number of inputs !");
}
else{

/* variables declaration */
short intermediateValue;

/* filling of the array tramePDU */
tramePDU[0] = READ_DISCRET_INPUTS; //function code
intermediateValue = (short)st_add;
intermediateValue >>= 8;
tramePDU[1] = (byte)(intermediateValue & MASK);
tramePDU[2] = (byte)(st_add & MASK);
intermediateValue = (short)nb_inputs;
intermediateValue >>= 8;
tramePDU[3] = (byte)(intermediateValue & MASK);
tramePDU[4] = (byte)(nb_inputs & MASK);

}

return tramePDU;
}

Gwillherm
Commenter la réponse de Gwillherm

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.