1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Gestion des erreurs

Discussion dans 'Windev' créé par Mohamed, Mar 7, 2018.

  1. Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    60
    Bonjour

    Je faisait une procédure qui me permet de gérer les erreurs en ignorant celle de pcsoft, mais cette méthode me parait n'est pas professionnelle.
    Pour cela je m'oriente vers vous et vos expériences de modifier ou améliorer ma procédure ci dessous

    Dans le projet init

    ModeExécution(modePermissif)
    HSurErreur("*",hErrTout,"")
    HGèreJournal("*",Faux)
    HGèreIntégrité(Vrai)
    HGèreREP(Faux)
    HGèreTransaction("*",Vrai)
    HSurErreur("*",hErrPerteConnexion ,"FenReconnexion")
    HGèreDoublon("*",Vrai)

    Merci d'avance
     
    Tags:
  2. Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    60
    Bonjour

    Il n y a pas de solution
     
  3. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Huum dangereux de mettre ModeExécution(modePermissif) car tu n'auras pas de retour d'info sur les plantages ou erreur de développement.

    A mon avis il vaut mieux mettre en init du projet :

    Code (Text):

    HSurErreur("*",hErrTout,RECUP_EXCEPTION)
    CAS EXCEPTION:
        RECUP_EXCEPTION()
     

    et traiter tous les messages d'erreur, cas par cas dans la procédure.

    Code (Text):


    PROCEDURE RECUP_EXCEPTION()

    serreur= "Identifiant : " + " " +  "  "+ ExeInfo(exeVersion) + RC + ExceptionInfo(errElément)+"   ligne  "+ExceptionInfo(errLigne)+"    pendant "+ExceptionInfo(errPendant)+"    "+ExceptionInfo(errTraitement)+RC+...
    ExceptionInfo(errMessage)
    VersPressePapier(serreur)

    MessageErreurComplete=RC + "Identifiant : " + Ste + " " + sNomLogiciel + " " +  ExeInfo(exeVersion) + RC + ExceptionInfo(errElément)+"   ligne  "+ExceptionInfo(errLigne)+"    pendant "+ExceptionInfo(errPendant)+"    "+ExceptionInfo(errTraitement)+RC+...
    ExceptionInfo(errMessage) + RC + "Message d'erreur : " + RC + ExceptionInfo(errComplet) + RC + Ste



    //Chemin Introuvable
    SI ExceptionInfo(errCode)=70302 ALORS
        Ouvre(FEN_CRASH,"Données introuvables." + RC +RC+ "Les données du serveur sont inaccessibles." + RC + RC )
        FinProgramme()
    FIN

    //Accès refusé
    SI ExceptionInfo(errCode)=70152 ALORS
        Ouvre(FEN_CRASH,"Accès refusé" + RC +RC+ "Les données du serveur sont inaccessibles" + RC + RC + "Il s'agit d'un problème de droit sur le réseau"+RC+RC+"Le problème doit être réglé à partir du serveur et non pas à partir de ce poste.")
        FinProgramme()
    FIN

    //Erreur de blocage
    SI ExceptionInfo(errCode)=70800 ALORS
        Ouvre(FEN_CRASH,"Le fichier est bloqué." + RC +RC+ "Une erreur de blocage est survenue" + RC + RC + "Il s'agit d'un problème de droit sur le réseau ou d'un logiciel tièrs (AntiVirus, sauvegarde en ligne, AntiSpyWare) qui utiliserait les fichiers en même temps que le logiciel ."+"Cela peut être du aussi à un problème réseau (Lenteur, Coupure...)"+RC+RC+"Conseil : Eteignez tous les postes qui utilisent le logiciel et redémarrer. ")
        FinProgramme()
    FIN

    //Erreur réseau CS ou serveur inaccessible.
    SI ExceptionInfo(errCode)=74000 ALORS
        Ouvre(FEN_CRASH,"Les données du serveur "+ " sont  inaccessibles" + RC + "Il s'agit peut être d'un problème réseau",Faux,0)
        FinProgramme()
    FIN

    SI ExceptionInfo(errCode)<>70016 ALORS //et  ExceptionInfo(errCode)<>70003 ALORS
        Ouvre(FEN_CRASH,Ste+RC+sNomLogiciel+" "+ExeInfo(exeVersion)+" a rencontré un problème . Notez ce message ou faites un copier-coller."+RC+RC+serreur+RC+RC+"Notez précisément les opérations effectuées avant ce message d'erreur"+RC+"Ensuite contactez la hot-line +33(0)9.72.45.97.35"+sNomLogiciel+".",0,0)  
    FIN

    SI ExceptionInfo(errCode)=70016 ALORS
        //Lancer WdModFic()
        Ouvre(FEN_INFO_UI,"La mise à jour des données est effectuée. Veuillez relancer le logiciel.")
        FinProgramme()  
    FIN

    ExceptionActive()

    //Fichier inacessible. Pb réseau ?
    SI ExceptionInfo(errCode)=70003 ALORS Ouvre(FEN_CRASH)

    //Aucun parcours n'a été amorcé pour la rubrique
    SI ExceptionInfo(errCode)=70019 ALORS
        Ouvre(FEN_CRASH,Ste+RC+sNomLogiciel+" "+ExeInfo(exeVersion)+"Problème d'indexation des fichiers - vous devez réindexer.  "+RC+RC+serreur+RC+RC+"Notez précisément les opérations effectuées avant ce message d'erreur"+RC+"Ensuite contactez la hot-line +33(0)9.72.45.97.35"+sNomLogiciel+".",0,0)  
    FIN


    SI SansEspace(ExceptionInfo(errFichier))<>"" ET ExceptionInfo(errCode)<>70016 ET  ExceptionInfo(errCode)<>70003 ET  ExceptionInfo(errCode)<>74000   ALORS
        Sablier(Vrai)
        //reindexmesfichiersachaud()
        Sablier(Faux)
    FIN

    //Les fichiers ne sont pas en phase avec l'analyse
    SI ExceptionInfo(errCode)=70016 ALORS
        serreur= "Identifiant : " + Ste + " " + sNomLogiciel + "  "+ ExeInfo(exeVersion) + RC + ExceptionInfo(errElément)+"   ligne  "+ExceptionInfo(errLigne)+"    pendant "+ExceptionInfo(errPendant)+"    "+ExceptionInfo(errTraitement)+RC+    ExceptionInfo(errMessage)
        SI Ouvre(FEN_CRASH,"Vos données ne sont pas en phase avec votre exécutable." +RC+RC +"Si vous venez d'effectuer une mise à jour ceci est le processus normal."+RC+RC+"Le logiciel va traiter les fichiers et se fermer. Vous devrez relancer le logiciel pour continuer. ",serreur) = Vrai ALORS
            //WdModFic()
            FinProgramme()  
        SINON
            FinProgramme()
        FIN
    FIN


    FinProgramme(Vrai)


     
     
    joker, suenodesign et warjoen aiment ça.
  4. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Excellente idée. BRAVO
    Je vais intégrer ce script dans tous mes projets.
    Merci infiniment.
     
  5. warjoen

    warjoen Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    157
    J'aime reçus:
    122
    Thanks....
     
  6. Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    60
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Merci d'abord de votre retour expérience

    Si je traite mes erreurs comme la façon que vous noter.
    donc j' ignore le script ci dessous dans chaque opération d'ajout/Modif/Suppression et je garde uniquement (
    Hajoute(Fichier)

    au lieu de :
    Hajoute(Fichier)
    SI ErreurDétectée ALORS
    SI HErreurDoublon() ALORS
    p_sErrorMessage="dd"
    RENVOYER Faux
    SINON SI HErreurIntégrité() ALORS
    p_sErrorMessage="INT"
    RENVOYER Faux
    SINON
    p_sErrorMessage="erreur: " + HErreur()
    RENVOYER Faux
    FIN
    FIN
    Merci d'avance
     
  7. Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    60
    Bonjour

    Après une lecture de votre code je trouve que:

    1- Tu ne traite pas le CAS 70010 //Doublon
    2- Est ce que tu met dans votre code la fonction HGèreDoublon("*",Vrai)
     
  8. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Les erreurs de doublon sont gérés dans le cas général.
    Mais j'en ai pas eu souvent.


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour

    Après une lecture de votre code je trouve que:

    1- Tu ne traite pas le CAS 70010 //Doublon
    2- Est ce que tu met dans votre code la fonction HGèreDoublon("*",Vrai)
    Cliquez pour agrandir...
     
  • gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Non continue a faire le contrôle des doublons et des intégrités après chaque ajout/modif/sup

    J'ai fait une procédure (ici simplifiée) qui gère cela, a ajouter après chaque Hajoute/Hmodife/Hsupprime

    Code (Text):

    PROCEDURE doublonIntegriteHOTLINE(AfficheMessage=Faux)

    SI HErreurDoublon() ALORS
        SI AfficheMessage = Vrai ALORS Ouvre(FEN_ERREUR,"Erreur de doublon"+RC+HErreur)
    FIN
    SI HErreurIntégrité() ALORS
        SI AfficheMessage = Vrai ALORS Ouvre(FEN_ERREUR,"Erreur d'intégrité "+RC+HErreur)
    FIN

    SI HErreurBlocage() ALORS
        SI AfficheMessage = Vrai ALORS Ouvre(FEN_ERREUR,"Erreur de blocage "+RC+HErreur)
    FIN
     


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Merci d'abord de votre retour expérience

    Si je traite mes erreurs comme la façon que vous noter.
    donc j' ignore le script ci dessous dans chaque opération d'ajout/Modif/Suppression et je garde uniquement (
    Hajoute(Fichier)

    au lieu de :
    Hajoute(Fichier)
    SI ErreurDétectée ALORS
    SI HErreurDoublon() ALORS
    p_sErrorMessage="dd"
    RENVOYER Faux
    SINON SI HErreurIntégrité() ALORS
    p_sErrorMessage="INT"
    RENVOYER Faux
    SINON
    p_sErrorMessage="erreur: " + HErreur()
    RENVOYER Faux
    FIN
    FIN
    Merci d'avance
    Cliquez pour agrandir...
     
  • Mohamed

    Mohamed Active Member

    Inscrit:
    Jan 15, 2018
    Messages:
    304
    J'aime reçus:
    60
  • Partager cette page

    Chargement...