 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Goth Guest
|
Posted: Thu Jul 24, 2003 7:18 pm Post subject: stringstream et exception. |
|
|
J'ai le code suivant :
void IoXML::openFile(const std::string &name)
{
xmlNodePtr model;
if((m_doc = xmlParseFile(name.c_str())) == NULL) {
std::stringstream s;
s << "Error on parse file " << name.c_str() << std::endl;
throw s.str();
}
...
}
J'aimerais savoir si je ne crée pas une fuite de mémoire avec la
stringstream ?
Est ce qu'il faudrait mieux faire un :
...
throw std::string(s.str());
...
Sinon si vous avez une meilleure idée pour gérer les erreurs (if faut
gérer les erreurs dans les boîtes de dialogue et ou la console) je suis tout
ouï !
Merci d'avance.
|
|
| Back to top |
|
 |
Bertrand Motuelle Guest
|
Posted: Thu Jul 24, 2003 8:18 pm Post subject: Re: stringstream et exception. |
|
|
"Goth" <oogothoo (AT) yahoo (DOT) fr> schrieb im Newsbeitrag
news:pan.2003.07.24.19.18.29.828882 (AT) yahoo (DOT) fr...
| Quote: | J'ai le code suivant :
[...]
std::stringstream s;
s << "Error on parse file " << name.c_str() << std::endl;
throw s.str();
[...] |
| Quote: | J'aimerais savoir si je ne crée pas une fuite de mémoire avec la
stringstream ?
|
Non, c'est correct. Pour cet usage std::ostringstream est suffisant.
| Quote: | Est ce qu'il faudrait mieux faire un :
throw std::string(s.str());
|
C'est redondant. La fonction str() de stringstream retourne un std::string
(contrairement à strstream).
| Quote: | Sinon si vous avez une meilleure idée pour gérer les erreurs (if faut
gérer les erreurs dans les boîtes de dialogue et ou la console) je suis
tout
ouï !
|
Il y a un tas de moyens de gérer les erreurs.
Concernant les exceptions, tu devrais peut-être créer ta propre d'exception
plutôt que de lancer des std::string.
(c'est un peu particulier de faire un catch(std::string&)).
Il est assez courant de dériver une classe/hiérachie de classe de
std::exception qui encaspulera le contexte de l'exception (origine,
sévéritée, message, pile d'appel...).
A toi de determiner ce dont tu as besoin exactement.
Bertrand
|
|
| Back to top |
|
 |
Goth Guest
|
Posted: Thu Jul 24, 2003 9:39 pm Post subject: Re: stringstream et exception. |
|
|
Le Thu, 24 Jul 2003 22:18:47 +0200, Bertrand Motuelle a écrit :
| Quote: | "Goth" <oogothoo (AT) yahoo (DOT) fr> schrieb im Newsbeitrag
news:pan.2003.07.24.19.18.29.828882 (AT) yahoo (DOT) fr...
[texte rapporté caché]
[...]
[texte rapporté caché]
[...]
[texte rapporté caché]
Non, c'est correct. Pour cet usage std::ostringstream est suffisant.
[texte rapporté caché]
C'est redondant. La fonction str() de stringstream retourne un std::string
(contrairement à strstream).
[texte rapporté caché]
tout
[texte rapporté caché]
Il y a un tas de moyens de gérer les erreurs.
Concernant les exceptions, tu devrais peut-être créer ta propre d'exception
plutôt que de lancer des std::string.
(c'est un peu particulier de faire un catch(std::string&)).
Il est assez courant de dériver une classe/hiérachie de classe de
std::exception qui encaspulera le contexte de l'exception (origine,
sévéritée, message, pile d'appel...).
A toi de determiner ce dont tu as besoin exactement.
Bertrand
|
C'est ce que j'étais en train de penser en fait...
J'écris une classe pour voir et on en reparle après :)
Merci.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|