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

Langage Delphi Discussion :

pb avec un classe d'exception


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut pb avec un classe d'exception
    bonjour,

    j'ai créée une classe d'exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    EError = class(Exception)
        constructor Create(const lMessage : string; lError : integer);
        private
          FMessage : string;
        public
          ErrorCode : integer;
          property Message: string read FMessage write FMessage;
      end;
    J'ai crée une procédure pour gérer toute les exception non relevée.

    Tout fonctionne, par contre lorque qu'il y a interception d'une EError, le message est toujours vide. (et etonnament si j'intercepte l'erreur par un try, j'arrive à récuprer le message d'erreur).

    Si quelqu'un a une idée.

    Merci

    Modération : Merci de penser aux balises [code]

  2. #2
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut.
    Pourquoi redeclarer la propriété Message? tu devrait avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EError = class(Exception)
      constructor Create(const lMessage : string; lError : integer);
    private
      FErrorCode : integer;
    public
      property ErrorCode : integer read FErrorCode write FErrorCode;
    end;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    C'est dans mes essais pour comprendre pourquoi je n'avais pas de message

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Pourrais-tu nous montrer l'implémentation de ton constructeur... C'est forcément de là que vient ton erreur (sauf si bien sûr tu appelles le constructeur avec un argument vide )
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Le code du constructeur

    constructor EError.Create(const lMessage : string; lError : integer);
    begin
    FMessage := lMessage;
    ErrorCode := lError;
    end;

  6. #6
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut.
    Solution testée et validée.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    EError = class(Exception)
      constructor Create(const lMessage : string; lError : integer);
    private
      FErrorCode : integer;
    public
      property ErrorCode : integer read FErrorCode write FErrorCode;
    end;
     
    constructor EError.Create(const lMessage: string; lError: integer);
    begin
      Inherited Create(lMessage);
      ErrorCode := lError;
    end;
     
    procedure TestEError();
    begin
       Try
        Raise EError.Create('Test EError',123);
      Except
        On E : EError Do Begin
          ShowMessageFmt('Msg="%s"; Code=%d',[E.Message,E.ErrorCode]);
        End
      End
    End;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Super, ça marche.

    Merci

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

Discussions similaires

  1. Instancier une classe avec un arraylist et exception
    Par Chacha35 dans le forum Collection et Stream
    Réponses: 17
    Dernier message: 24/03/2010, 16h10
  2. Réponses: 1
    Dernier message: 29/04/2006, 18h24
  3. Pb avec une Classe d'exception EOleError
    Par raoulmania dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/05/2005, 12h39
  4. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  5. [Message d'erreur] Classe d'exception
    Par Pascal dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/05/2004, 10h08

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