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

C++Builder Discussion :

Gestion des exceptions


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par d�faut Gestion des exceptions
    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.

  2. #2
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    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...

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par d�faut re
    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);
      }
     
    }

  4. #4
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Citation Envoy� par sandball22
    ici, je dois mettre une exception?


    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);
    }

    }
    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.

  5. #5
    Membre �prouv�
    Avatar de doudoustephane
    Homme Profil pro
    G�rant
    Inscrit en
    Ao�t 2005
    Messages
    1 129
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : G�rant

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 129
    Par d�faut
    cherche dans les blocs de code

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    {
     
    }
    catch(...)
    {
     
    }
    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
    10
    11
    12
     
    try
    {
       if(condition)
       {
           //faire
       }
    }
    catch()
    {
        //faire si erreur
    }
    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.

    est-je etais clair???

  6. #6
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Citation Envoy� par doudouallemand
    est-je etais clair???
    Quelques fautes de frappe qui viennent un peu obscurcir ton raisonnement mais sinon ca va.

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par d�faut re
    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.

  8. #8
    Membre �prouv�
    Avatar de doudoustephane
    Homme Profil pro
    G�rant
    Inscrit en
    Ao�t 2005
    Messages
    1 129
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : G�rant

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 129
    Par d�faut
    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 :
    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()
    }
    tu confirme pottiez???

  9. #9
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Citation Envoy� par doudouallemand
    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 :
    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()
    }
    tu confirme pottiez???
    C'est exacte � un petit d�tail pres mais qui a son importance :

    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()
    }

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par d�faut re
    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.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [ADOConnect] gestion des exception en tout temps
    Par portu dans le forum Bases de donn�es
    R�ponses: 1
    Dernier message: 20/04/2005, 19h01
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    R�ponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de donn�es
    R�ponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    R�ponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    R�ponses: 7
    Dernier message: 05/06/2002, 14h11

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