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 :

Builder n'accepte pas try/catch/__finally


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut Builder n'accepte pas try/catch/__finally
    Bonjour,

    Builder 6 fr n'accepte pas le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       try
       {
          ;
       }
       catch(...)
       {
          ;
       }
       __finally
       {
          ;
       }
    Voici l'erreur que j'obtiens :
    [C++ Erreur] Unit1.cpp(29): E2188 Syntaxe de l'expression
    Merci pour votre aide!
    Cordialement,
    Rodrigue
    Rodrigue

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,
    J'ai jeté un oeil dans l'aide pour vérifier des petites choses et j'ai l'impression que __finally ne suit jamais directement un catch(...).
    Dans le bloc cité ici :
    int main()
    {
    float e, f, g;
    try
    {
    try
    {
    f = 1.0;
    g = 0.0;
    try
    {
    puts("Une autre exception:");
    e = f / g;
    }
    __except(EXCEPTION_EXECUTE_HANDLER)
    {
    puts("Interception d'une exception C.");
    throw(Exception("Erreur matérielle: division par 0"));
    }
    }
    catch(const Exception& e)
    {
    printf("Interception d'une exception C++ : %s :\n", e.msg());

    }
    }
    __finally
    {
    puts("C++ autorise aussi __finally !");
    }
    return e;
    }
    ainsi que dans d'autres suivants, ce genre de disposition ne semble jamais utilisée. __finally est nommé 'bloc de terminaison' parcequ'il s'execute qu'il y ait erreur ou non.
    En espérant t'aider un peu...
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    je confirme ce que dit Cantrelle. Tu peux mettre une succession de catch(...) pour un même try, mais le finally doit avoir son propore try.

    Bon courage
    "Don't think you are, know you are..." (Morpheus)

  4. #4
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Ah, ce n'est pas ISO

    Merci pour vos réponses.
    Rodrigue

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

Discussions similaires

  1. [Débutant] Ne pas répéter Try Catch
    Par Jah73 dans le forum VB.NET
    Réponses: 13
    Dernier message: 08/02/2013, 13h39
  2. Réponses: 6
    Dernier message: 27/10/2010, 14h06
  3. [SQL2005] TRY-CATCH ne passe pas le contrôle au CATCH ?
    Par elsuket dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/10/2008, 14h06
  4. Pourquoi un try catch ne marche-t-il pas ?!?
    Par noussibeau dans le forum VB.NET
    Réponses: 13
    Dernier message: 09/11/2007, 10h14
  5. __try __finally et try catch
    Par buzzz dans le forum C++
    Réponses: 6
    Dernier message: 19/02/2005, 15h31

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