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++/CLI Discussion :

le bloc try catch n'est pas accept�


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre extr�mement actif
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    1 022
    D�tails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 022
    Par d�faut le bloc try catch n'est pas accept�
    bonjour
    Je passe sur un code qui d�tecte l'absence d'enregistrement
    je vous donne le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
       try
       {
    		len = pSegment->pLinguisticSegment->pListProposition->size();
       }
       catch( AccessViolationException)
       {
    	   objProposition.InitiateProposition( itChunk, pSegment, pCurrentElement, pPreviousElement, pLinguisticSegment, pChunk, pbNewSegment, bIsInList, bNounPending, bIsPredicatAllocated, bIsPreconditionAllocated , bWasPredicatAllocated, bWasPreconditionAllocated, Curpos, iAlloc, iStep, wsChunk, pWord, pPreviousChunk, pCurrentChunk, pNextChunk, pNext2Chunk);
       }
    mais le compilateur n'aime pas:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    1>..\..\..\..\Linguistic\Analyser\src\Proposition.cpp(6167): error C2725: 'System::AccessViolationException'*: impossible de lever ou d'intercepter un objet managé par valeur ou référence
    1>..\..\..\..\Linguistic\Analyser\src\Proposition.cpp(6167): error C2316: 'System::AccessViolationException'*: ne peut pas être intercepté en tant que destructeur et/ou le constructeur de copie est inaccessible
    qui m'aidera sera

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    D�j� tu utilises la mauvaise syntaxe, mais de toute fa�on on s'en fout, car sous un framework .net r�cent (y compris le 4.0 livr� avec .net 2010) on ne peut plus catcher une AccessViolationException sans montrer patte blanche avant.[1] Le code part du principe que si l'exception est lanc�e, le programme est d�j� dans les choux et doit �tre euthanasi�.

    Apr�s, dans certains cas on peut avoir du code fait expr�s pour bosser autour d'une telle exception (j'ai d�j� boss� sur un tel code). Mais ce n'est certainement pas le cas d'un programme ordinaire en C++ suppos� correct. Tu ne dois donc pas tenter de catcher AccessViolationException dans le vain espoir de cacher ton horrible incompr�hension du fonctionnement du C++ et ton refus d'utiliser correctement les pointeurs intelligents.

    [1]Et non, je ne donnerai pas plus d'infos l�-dessus, et je d�conseille aux autres posteurs de dire quoi que ce soit �galement, cela ne ferait qu'exacerber le probl�me.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre extr�mement actif
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    1 022
    D�tails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 022
    Par d�faut La solution
    bonjour, J'ai le m�me r�sultat avec Exception
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
       try
       {
    		len = pSegment->pLinguisticSegment->pListProposition->size();
       }
       catch( Exception e)
       {
    	   objProposition.InitiateProposition( itChunk, pSegment, pCurrentElement, pPreviousElement, pLinguisticSegment, pChunk, pbNewSegment, bIsInList, bNounPending, bIsPredicatAllocated, bIsPreconditionAllocated , bWasPredicatAllocated, bWasPreconditionAllocated, Curpos, iAlloc, iStep, wsChunk, pWord, pPreviousChunk, pCurrentChunk, pNextChunk, pNext2Chunk);
       }
    mais �a compile avec Exception^ e

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    @JeanNoel53, @M�dinoc est plus que de bon conseil.
    Si tu ne cherches pas � comprendre, tu n'arriveras jamais � avoir un programme FIABLE.

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

Discussions similaires

  1. R�ponses: 15
    Dernier message: 26/10/2011, 11h28
  2. [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
  3. Faire un return dans un bloc try catch
    Par alizee971 dans le forum D�buter avec Java
    R�ponses: 2
    Dernier message: 13/08/2008, 19h38
  4. R�ponses: 1
    Dernier message: 17/10/2006, 15h05
  5. nom de formulaire en arabe n'est pas accepter.
    Par hocine dans le forum IHM
    R�ponses: 3
    Dernier message: 26/11/2005, 12h25

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