IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

gestion/management des erreurs/indication de traitement de fonctions


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 76
    Points : 58
    Points
    58
    Par défaut gestion/management des erreurs/indication de traitement de fonctions
    Salut à tous,

    Dans le cadre de développement d'une application en Java, j'ai un problème dans la façon de concevoir et gérer mes erreurs ou retours de fonctions.

    Voici mon contexte actuel :
    à partir d'un fichier CSV en entrée je test chaque champ de celui-ci et s'il y a une "erreur" de format je voudrais le retourner à l'utilisateur de manière assez précise.
    Je ne souhaite pas uniquement dire qu'un champ est invalide mais je voudrais également retourner la raison de cette invalidité.

    Ainsi lorsque j'ai la valeur suivante : "32/01/2020"
    pour un champ de type : Date

    J'aimerais donc dire que :

    - le champ est invalide
    - que la dénomination des jours est erroné car supérieur à 31

    Voici mes différentes reflexions

    ---------------------------
    j'ai créé des méthodes du style "isDateColumn" que retourne TRUE si tout va bien sinon elle lève une exception qui détail l'erreur. Ainsi si le format du champ n'est pas correct je lève une "erreur". J'ai donc ma réponse ainsi que un message que je peux gérer mais avec cette technique :
    - je considère qu'un mauvais format est une erreur alors que finalement non. C'est juste une indication concernant une question que j'ai posé. Ce n'est pas techniquement parlant une erreur.
    - lorsque j'ai besoin de savoir si le champ N'EST PAS de type date cela ne me retourne pas une réponse (FALSE) mais une erreur. Ce qui n'est pas très pratique car je dois dans ce cas faire un try/catch et considérer que si je tombe dans le catch c'est que ma réponse est négative
    ---------------------------
    Je pourrais créer des methodes qui renvoi un Array contenant 2 clés. L'une pour la réponse de validité (TRUE/FALSE) et l'autre pour un éventuel message d'erreur.
    Mais avec cette technique :
    - je ne suis pas sûr que cette methode soit très répandu et courante.
    - cela peut être un peu lourd de gérer constamment un array en retour.
    ---------------------------
    Une solution intéressante serait éventuellement de créé une class ValidationFile. Avec cette technique :
    - je peux créer une methode isValid qui renvoi bien juste un boolean MAIS qui créé en interne dans des champ de la classe les éventuelles erreurs detectés
    - je peux créer une methode qui pourra être appeler si la 1e (isValid) retourne FALSE, qui renvoi les erreurs créé et stocker dans des champ et rempli par la 1e methode

    Ma problématique ne consiste pas à résoudre basiquement ce soucis mais de trouver une solution/philosophie technique que je puisse réutiliser et qui soit à la fois efficace et standard. Ainsi comment les autres librairies fonctionne t-elle à ce niveau ?


    Qu'en pensez-vous ? Comment gérer efficacement des messages de traitement qui ne sont pas spécialement des erreurs ?

    Merci de vos éclairages !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 474
    Points : 921
    Points
    921
    Billets dans le blog
    5
    Par défaut
    Que du code pour aider, ça serait super bien.

    Il y a plusieurs questions dans la question.

    La première, sur les erreurs, ça dépends. Je te conseille/propose (c'est une question de point de vue) d'utiliser les exception. Les exceptions standard et surtout pas les Runtime ( pour les erreur de code).

    Pour vérifier les entrée, je te conseille l'excellent Hibenate Validator (JSR 303):
    https://jmdoudoux.developpez.com/cou...dation_donnees

    Cordialement.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 76
    Points : 58
    Points
    58
    Par défaut
    Après lecture de la documentation de JM Doudoux sur la JSR303 et Hibernate Validator, j'ai également appris qu'une librairie de Apache Commons était dédié aux validation.
    De plus j'ai appris que la librairie OpenCSV pouvait lier des datas de fichiers CSV à des beans directement.

    Ainsi je pense que la réponse ultime à ma problématique est simplement de concevoir mon CSV comme une collection Beans (représenté par les lignes du fichier).
    Car à partir de là je tombe dans un structure de code plutôt objet et classique (et maintenable plus facilement) et surtout dans laquelle je me reconnais mieux.

    Je voulais faire quelques chose de simple mais bien fait et je m’aperçois que si je ne passe pas par ce système de beans, je risque de créer quelques choses de trop brouillon.

    Maintenant je sais un peu mieux ou je vais allé mais arrivant sur Java cela va me prendre plus de temps pour construire cette ensemble beans/validator/utilisation. Néanmoins arrivant d'un autre langage de programmation ce genre de concept m'est plutôt familier. Je voulais quelque chose de simple mais je préfère quelque chose de plus propre et professionnel.

    Hibernate Validator peut être intéressant car je pense utiliser à terme Hibernate pour communiquer avec ma base de données relationnelle.

    Merci à vous PhilippeGibault pour votre éclairage qui m'a apporté une nouvelle vision de mon projet.

Discussions similaires

  1. Gestion globale des erreurs
    Par claire_S dans le forum Struts 2
    Réponses: 5
    Dernier message: 20/04/2009, 11h24
  2. Gestion personnalisée des erreurs
    Par Immobilis dans le forum Général Dotnet
    Réponses: 14
    Dernier message: 05/10/2008, 00h20
  3. Gestion propre des erreurs
    Par Titi41 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 29/05/2008, 17h37
  4. gestion personnaliser des erreurs PHP
    Par pascalbout1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2007, 16h39
  5. Réponses: 3
    Dernier message: 21/10/2006, 22h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo