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

 Delphi Discussion :

Interception de eRegistryException


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de Nicolas Coolman
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut Interception de eRegistryException
    Hello,

    Je voudrais lire la donnée d'une valeur de clé de Base De Registres Windows. Afin d'éviter l'affichage d'une d'erreur, je voudrais intercepter l'erreur provoquée par ERegistryException afin de faire un readString ou un readInteger de la donnée

    Voilà un bout de programme qui plante malgré le Try/Except

    vVariant est de type variant, j'ai essayer aussi en mettant un integer dans le cas d'un ReadInteger et un string dans le cas du
    ReadString


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
               Try
                    vVariant := reg.ReadString('VALUE1');
     
                Except
                   on ERegistryException do begin
                      ShowMessage('ERREUR D''ACCES DONNEE');
                      vVariant := reg.ReadInteger('VALUE1');
                   end;
                end;
                //suite du traitement

    Donc malgré le Try/Except, j'ai quand même le message d'erreur


    Pourriez-vous m'aider à résoudre mon problème. ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    L'image est celle d'une exception de débogage, ... case à cocher "Arrêter sur exceptions Delphi" dans l'onglet "Exception du Langage" Menu Outils
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Pourquoi ne pas utiliser la fonction ValueExists ?
    Et ainsi éviter le try..except.

    @+ Claudius

  4. #4
    Membre régulier Avatar de Nicolas Coolman
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Hello,

    Merci à tous les deux pour vos réponses,

    Bravo, effectivement en désactivant l'option de déboggage, j'ai bien le passage dans la routine 'Except' et je n'ai plus de plantage.

    Par contre en désactivant cette option, qu'advient-il si d'autres types d'exception se présentent ?

    Je vais jeter un coup d'oeil aussi du côté de la fonction ValueExists et de l'analyse de la donnée retournée.

    Encore bravo pour la réactivité et la qualité de votre forum.

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Coolman2 Voir le message
    Je vais jeter un coup d'oeil aussi du côté de la fonction ValueExists et de l'analyse de la donnée retournée.
    ValueExists renvoie un boolean qui te confirme ou non la présence de la valeur dans la BdR. Ce qui évite de lever une exception lors de sa lecture si elle est absente.
    C'est à mon avis plus propre qu'un bloc try...except.


    Citation Envoyé par Coolman2 Voir le message
    Encore bravo pour la réactivité et la qualité de votre forum.

  6. #6
    Membre régulier Avatar de Nicolas Coolman
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Re,

    ValueExists renvoie un boolean qui te confirme ou non la présence de la valeur dans la BdR. Ce qui évite de lever une exception lors de sa lecture si elle est absente.
    C'est à mon avis plus propre qu'un bloc try...except.
    Oui, Cl@udius, je viens juste de constater qu'il s'agit d'une boolean.
    Mais dans mon cas de figure, en dehors du fait de savoir si la valeur existe, c'est l'analyse du type de la donnée qui m'interesse et la le try/except passe bien.

    A bientôt...

    Je passe en résolu

  7. #7
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par Coolman2 Voir le message
    Par contre en désactivant cette option, qu'advient-il si d'autres types d'exception se présentent ?
    au lieu de decocher "Arrêter sur exceptions Delphi", tu peux clicquer sur "Ajouter" dans le groupbox juste au dessus ("Types d'exceptions à ignorer") et ecrire "ERegistryException". Toutes les classes d'exceptions cochées ici ne te mettront pas le message du debugger delphi.
    (cette fonctionnalité est presente au moins dans Delphi7)

  8. #8
    Membre régulier Avatar de Nicolas Coolman
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Hello guillemouze,

    Cette option du debogger me plait bien, je vais l'adopter.

    Merci pour l'info et à bientôt

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2003, 13h43
  2. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39
  3. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  4. [VB6] Intercepter le printscreen
    Par Rami dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/10/2002, 18h21
  5. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09

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