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

Autres Discussion :

Strategie de gestion d'erreur dans bibliothèque [DAO]


Sujet :

Autres

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut Strategie de gestion d'erreur dans bibliothèque
    Bonjour

    Je suis entrain de redigè une DAL assè generique pour etre utiliser sous MySql, Access, Oracle, SQL Serveur.

    Je m'interroge sur la maniere dont je devrais gerè les erreurs

    - throw new exception ?
    - fichier de log à 100lignes ?
    - aucune (il n'as cas savoir utiliser ma librairie )

    ou une autre methode a laquel je n'aurais pas penser....


    toujours dans le meme esprit, doit-je penser a la place du developpeur utilisant ma librairie au risque de la ralentir

    exemple:
    ma DAL est connecter a une base de donnèe qui contient deja un schema
    le developpeur utiliser la fonction d'ajout sur une table nommè "Article"

    dois-je verifier l'existance de cette table? (donc a chaque ajout, modification....) et dans le cas ou elle n'existerais pas declencher la fonction de creation de table?

    ce type de gestion rend l'utilisation de la librairie plus malèable mais l'alourdis fortement


    merci de vos conseil

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    • premier conseil :

      écrire un français correct (c'est bourré de fautes, ton texte)



    • second conseil :

      penser par rapport au lecteur (ton message est peu clair)




    Déjà là tu auras un bon point de départ.



    Troisième point : on ne sait rien de la conception de ta bibliothèque (librairie est un faux-ami par rapport à l'anglais)..

    Les erreurs, lesquelles ??

    Celles se passant dans ta biblothèque, bien sûr que tu dois les gérer.
    Quant à l'accessibilité ou non d'une table, si tes fonctions manipulent des tables, bien entendu que tu dois vérifier qu'elles existent..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    par librairie j'entend une fichier DLL contenant divers classes (programmation objet) qui permet d'effectuer un traitement bien defini.


    je sais que je doit géré les erreurs, la question que je me pose est "comment les géré?"


    je peut declencher des "throw new exception"
    ou encore mettre fin a l'execution de la procedure et inscrir l'erreur dans un fichier texte "errors.txt"
    il y a ensuite la possibilitè de réparè l'erreur de l'utilisateur, a savoir (dans l'exemple precedent) si un developpeur effectuer une insertion avec la creation de la table alors la fonction d'insertion le detecte et crèè la table

    la derniere possibilitè offre plus de souplesse a l'utilisateur de la librairie mais la rend moins performante



    après il doit y avoir encore d'autre possibilitè, je me demande juste laquel et la mieu adapter

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut c'est un pb de spécs?
    Si c'est une API, elle doit faire un minimum d'hypothèses sur l'état des objets... et de bon sens!

    Exemple: est ce qu'une insertion dans une table qui n'existe pas doit provoquer la création de la table ou throw 'no such table'?
    Le bon sens dit que si les appels répétés sont des erreurs de codage, on risque de créer plein de tables qu'il faudra ensuite nettoyer. Pas bon du tout...
    Est ce qu'il est sain de complexifier le code de bas niveau pour des cas marginaux? non.

    Et cela est une question de specs ou de contrat avec l'utilisateur.

    Après comment reporter l'erreur?
    Pour l'appelant c'est throw, et il s'en débrouille.
    Pour le log, c'est pas un dump de la stack mais une ligne
    ERROR: insert to unexistant table (name of the table),...

    Comme c'est une bibliothèque, elle ne devrait pas prendre la responsabilité de terminer le programme: ce genre de décision doit être pris plus haut....

    Les seuls cas ou on doit sortir c'est lorsque l'intégrité des données est compromise ou qu'on se retrouve dans un état incohérent, i.e. un bug.
    Dans ce cas, il faut la stack et éventuellement un dump pour faire un diagnostic et corriger.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    merci pour ta reponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AIX] Gestion des erreurs dans un script
    Par f-k-z dans le forum AIX
    Réponses: 2
    Dernier message: 17/07/2007, 08h45
  2. [vba-e] Gestion D'erreur Dans Un Inputbox
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2007, 09h39
  3. Gestion des erreurs dans un TRIGGER
    Par SDU64 dans le forum DB2
    Réponses: 1
    Dernier message: 18/05/2006, 09h51
  4. Gestion d'erreur dans les procédure
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/01/2006, 12h02
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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