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

Langage Delphi Discussion :

A propos des débordement


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut A propos des débordement
    J'aimerais savoir comment fonctionne le truc try et except

    je sais que c'est pour gerer les débordement mais je m'y connait pas du tout

    merci!!!

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    plise ou meme

  3. #3
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Les blocs Try...Except...End et Try...Finnally...End ne sont pas spécialement prévus pour les débordement mais pour une gestion des erreurs, ça se présente de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try
      // ici tu met le code susceptible de causer une erreur (c'est le bloc protégé)
    except
      // si une erreur survient dans le bloc protégé ci-dessus, le code qui se trouve ici sera executé
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try
      // ici tu met le code susceptible de causer une erreur (c'est le bloc protégé)
    finnally
      // le code qui se trouve ici sera executé quoi qu'il se passe dans le bloc protégé
    end
    c'est une expliquation un peu rapide et simpliste mais je pense que le principal y est.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    Merciiiii.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    NON!!!!!!!!

    tout compte fait je n'ai rien compris

    est ce que je peux avoir un bel exemple concret avec par exemple

    hheuu la gestion d'un débordement
    ou probleme de division par 0 plzzzz


  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 681
    Points : 7 113
    Points
    7 113
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
       Resultat := Valeur1 / Valeur2;
    except
       ShowMessage('Erreur !');    //.Peut-être une division par zéro.
    end;

  7. #7
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Bonjour,
    Le try...except..end; le try..finally..else..end; J'ai mis longtemps à me faire ma philosophie quand à leurs usages!
    Ces instructions existent dans le language delphi depuis la toute première version (1994 dans mon cas avec Delphi 1). Comme tous les débutants, j'ai entendu alors
    "protége ton code, protége ton code!!! Utilise les blocs 'try..'
    Seulement voilà, dans le code d'un débutant il est rarement utile de prendre la main sur les gestions du langage qui est assez bien bordé pour l'usage que l'on en fait à nos débuts. Puis vient le moment fatal: celui des débordements! Sans vouloir en faire une généralité, nous y passons tous et c'est à ce moment que l'on se rend compte du bien fondé de l'usage des blocs 'try'. C'est , également, à ce moment là qu'on s'aperçoit que c'est bien joli mais qu'on y comprend rien!
    Aujourd'hui, je les utilise de la façon suivante:
    Lorsque le code gére l'ensemble des opérations, c'est à dire qu'il ne passe pas la main à un autre bout de code, j'utilise un L'except me garantit d'avoir une réponse suffisante à tous les écarts que peut commettre mon code et qui ne sont pas gérés par le language.
    Lorsque le code temporairement passe la main à un autre morceau du code, j'utilise un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Try..finally..else..end;
    Le finally me garantit la libération de la mèmoire que j'utilise. le 'Else' est optionnel. Dans le bout de code appelé, je me retrouve dans un cas d'usage de 'try..except'.
    Lorsque je me retrouve dans un cas mixte, je scinde mon code et je fais appel à une fonction ou une procédure de circonstance.
    Ce qui donne pour le 'try.. finally:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TMnForm.Button1Click(Sender: TObject);
    begin
      GrphcForm := TGrphcForm.Create(self);// Je cré un Tform
      try
        GrphcForm.showmodal;// Je lui passe la main et j'ai pas le choix de la méthode! Showmodal obligatoire 
      finally
        GrphcForm.Free;// Je suis sûr de libérer la mémoire mobilisée par l'objet
      end;
    end;
    Pour le try...except (en reprenant les posts précédents)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Procedure GrphcForm.fromShow (sender:Tobject);
    Var
    I1, I2:integer;
    begin
    I1:= StrtoInt(edit1.text);
    I2:=StrtoInt(Edit2.text);
    	Try
    		I1/I2;
    		Except
    		Showmessage('y'a un blème!');// avec le temps on apprend à créer des ensembles d'exception et on gére les messages avec des 'case' pour avoir la possibilité de gérer au cas par cas
    	end;
    end;
    Avec des if (c'est possible aussi) d'où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Var
    I1,I2:integer;
    begin
       If edit1.text <>'' then
           if ((edit2.text<>'') and (Edit2.text<>'0')) then
    .....
       end;
           end;
    end;
    c'est plus long et ça gére pas tout! c'est une autre façon de faire...
    Voilà, ce n'est sans doute pas la façon la plus pertinente d'utiliser ces instructions mais pour l'instant elle me convient tout à fait.. ;-)
    Bonne prog
    Cordialement,
    Hauwke

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    WOOOW merci

    lol j'ai peu etre un comportement bizzare et je suis peut-etre trop content pour un rien
    mais c'est parce que je commence un graduat en informatique de gestion
    et si j'ai de l'aide en dehors des cours en programmation

    JE SUIS AUX ANGES!!!!!!!!!!!!!!!!!!!

    et encore merci a tout ceux qui participe j'en ferai autant!!!
    hheuu dès que j'aurais plus d'experience

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

Discussions similaires

  1. Aide a propos des TMenuEdit
    Par scooper dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/05/2004, 16h39
  2. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 15h03
  3. A propos des 'File management Functions' de Windows
    Par znaidi dans le forum Windows
    Réponses: 3
    Dernier message: 01/04/2003, 17h01
  4. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 13h22

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