Bonjour, quelqu'un peut -ilm'expliquer clairement � quoi dert une exception? Je ne vois pas pourquoi un simple if ne ferait pas l'affaire.
J'ai d�ja regarder de la doc dessus mais je ne vois pas la diff�rence
Merci.
Bonjour, quelqu'un peut -ilm'expliquer clairement � quoi dert une exception? Je ne vois pas pourquoi un simple if ne ferait pas l'affaire.
J'ai d�ja regarder de la doc dessus mais je ne vois pas la diff�rence
Merci.
Les exceptions sont utilis�es pour capturer une eventuelle erreur lors de l'execution de ton programme, comme cela, si tu as r�cup�r� une exception, tu peut afficher ton propre message d'erreur au lieu de message d'erreur windows auquel on ne comprand pas toujours tout, ou tu peut aussi lors d'une erreur executer un code sp�cial pour contrecarer l'erreur, etc...
ici, je dois mettre une exception?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm2::RetirerClick(TObject *Sender) { if(StringGrid1->RowCount==2) ShowMessage("Attention, vous ne pouvez pas supprimer cette ligne"); else { StringGrid1->RowCount--; StringGrid1->Height=(StringGrid1->Height-25); } }
cherche dans les blocs de code
tu peux ainsi avoir par exemple :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 try { } catch(...) { }
ainsi, dans ce code, ton si va s'executer mais je gerera pas une eventuelle erreur D'EXECUTION, ce sera donc le bloc catch qui va intercepter l'ereur (au lieu de laisser faire windows) et faire ce que tu veux en cas d'erreur.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 try { if(condition) { //faire } } catch() { //faire si erreur }
est-je etais clair???
Quelques fautes de frappe qui viennent un peu obscurcir ton raisonnement mais sinon ca va.Envoy� par doudouallemand
![]()
non j'ai pas tre�s bien compris. tu peux r�expliquer?Merci. Dans le catch je met quoi? Sachatnque je ne sais pas si il y a une erreur quel genre d'errreur elle sera.
Ici, si j'ai bien compris, tu veut que l'on ne puisse pas retirer de ligne si il n'y en a que deux, c'est donc une condition et non pas une exception, puisque c'est toi qui veut faire la condition, enfin si j'ai bien compris ce que tu voulais, si tu veut mettre une capture d'exception � cette endroit, tu peut mais personnellement je n'en voit pas l'int�r�t.Envoy� par sandball22
dans le catch, tu mets du code qui va faire quelque chose dans le cas d'une erreur (par exemple, un message a l'utilisateur).
pour savoir d'ou vient l'erreur, il me semble que tu peux faire :
tu confirme pottiez???
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 try { //... } catch(Exception e) { //e contient l'erreur et tu peux faire e.c_str() }
C'est exacte � un petit d�tail pres mais qui a son importance :Envoy� par doudouallemand
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 try { //... } catch(Exception &e) { //e contient l'erreur et tu peux faire e.c_str() }
merci beaucoup pour cette correction, il m'avait echappe en effet...
oui je suis d'accord il s'agit d'une condition. Quand alors je dois utiliser une exception? Avez-vous un exemple qui m'aidrait � comprendre? car je suis perdu. Merci
Il faut utiliser une exception lorsqu'il y a un risque d'erreur, par exemple lorsque ton application contient un client socket et que tu veut connecter celui-ci � un serveur, tu ne sait pas si le serveur est lanc�, mais tu cherche quand m�me � te connect�, si le serveur n'est pas lanc�, cela te provoquera une erreur, que tu peut capter grace aux exceptions, pour effectu� la suite en sachant par exemple que tu n'est pas connect�.Envoy� par sandball22
Ok? Je compren mieux. Donc dans mon exemple, si je mets une exception :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 try { //... if(StringGrid1->RowCount==2) ShowMessage("Attention, vous ne pouvez pas supprimer cette ligne"); else { StringGrid1->RowCount--; StringGrid1->Height=(StringGrid1->Height-25); } } catch(Exception &e) { //e contient l'erreur et tu peux faire e.c_str() ShowMessage("Erreur"); }
Cela marche?
Sinon j'ai une autre question, quand le message d'erreur s'affiche, l'en tete de la fen�tre porte le nom de mon projet or je voudrais mettre "Erreur" ou "attention". comment dois-je faire?
Pour cela il suffit de mettre ce code juste avant ton ShowMessage :
Code : S�lectionner tout - Visualiser dans une fen�tre � part Form1->Caption = "Ce que tu veut écrire" ;
Oui mais ce n'est pas form1. je ne sais pas comment il s'appelle le form pour showmessage.
Pour le ShowMessage je ne sais pas, peut etre en r�cup�rant le Handle de cette fenetre.Envoy� par sandball22
J'ai contourn� mon probl�me en prenant
Code : S�lectionner tout - Visualiser dans une fen�tre � part int res = MessageBox(0,"Attention, vous ne pouvez pas supprimer cette ligne.\n", "Attention", MB_OK);
Et cela fonctionne. Merci pour votre aide.
Partager