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!!!
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!!!
plise ou meme
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é endc'est une expliquation un peu rapide et simpliste mais je pense que le principal y est.
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
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
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;
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 alorsSeulement 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!"protége ton code, protége ton code!!! Utilise les blocs 'try..'
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 unL'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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part try..Except..end;
Lorsque le code temporairement passe la main à un autre morceau du code, j'utilise unLe 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'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Try..finally..else..end;
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:
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 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;
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
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;
c'est plus long et ça gére pas tout! c'est une autre façon de faire...
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;
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager