[C++] Exceptions

Voir le sujet précédent Voir le sujet suivant Aller en bas

[C++] Exceptions

Message  momo le Dim 09 Déc 2007, 18:23

Bonjour/Bonsoir :p

Je suis un peu ennuyé, j'essaie de définir une exception qui prend en paramètre du constructeur une chaine et permet de la retourner avec une fonction getMsg... mais je crois que je m'y prends mal :p ...
j'ai tenté avec d'autres exemples sur le net, qui utilisaient des string, et des ostringstream , mais toujours des problèmes...
quelqu'un aurait-il une solution à me proposer ? voici la mienne (qui ne fontionne pas :p ... )

Code:
#include <string.h>
#include <stdlib.h>
class BlocException 
{
private:
    char * message;
public:

    BlocException(char * msg) {
        message = (char*)malloc(100);
        strcpy(message,msg);
    }

    char * getMsg() {return message;}
};


momo

Nombre de messages : 86
Age : 30
Prénom : Morgan
Statut : Etd, 3èG
Localisation : Uccle
Date d'inscription : 06/11/2006

Revenir en haut Aller en bas

Re: [C++] Exceptions

Message  nvs le Dim 09 Déc 2007, 18:51

laisse tomber immédiatement les chaînes à la c (char *) et adopte sans tarder les chaînes à la c++ (string). à ce propos, je confirme que ton getMsg est foireux Smile

de plus, n'hésite pas à faire dériver tes exceptions des exceptions standard : tu gagneras en fonctionnalités.

_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [C++] Exceptions

Message  BilbU le Lun 10 Déc 2007, 13:21

Soit dit en passant, il est préférable d'utiliser la fonction "strncpy" plutôt que "strcpy" pour éviter les buffer overflows. Wink

Evidemment, le problème ne se pose pas si tu utilises la classe "string" de C++ comme le dit nvs.
Attention quand même au fait que l'operateur "[]" de la classe "string" ne fait pas de bounds checking.

BilbU

Nombre de messages : 7
Age : 34
Prénom : Bruxelles, Ixelles
Date d'inscription : 27/11/2007

http://bilbu.tecp.info

Revenir en haut Aller en bas

Re: [C++] Exceptions

Message  nvs le Lun 10 Déc 2007, 14:00

BilbU a écrit:Attention quand même au fait que l'operateur "[]" de la classe "string" ne fait pas de bounds checking.
en cas de doute, utilisez donc la méthode "at".

_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [C++] Exceptions

Message  Contenu sponsorisé Aujourd'hui à 21:02


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum