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ï !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bertrand Motuelle
"Goth" schrieb im Newsbeitrag news:
J'ai le code suivant :
[...]
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 ?
Non, c'est correct. Pour cet usage std::ostringstream est suffisant.
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).
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
"Goth" <oogothoo@yahoo.fr> schrieb im Newsbeitrag
news:pan.2003.07.24.19.18.29.828882@yahoo.fr...
J'ai le code suivant :
[...]
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 ?
Non, c'est correct. Pour cet usage std::ostringstream est suffisant.
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).
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.
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 ?
Non, c'est correct. Pour cet usage std::ostringstream est suffisant.
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).
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
Goth
Le Thu, 24 Jul 2003 22:18:47 +0200, Bertrand Motuelle a écrit :
"Goth" schrieb im Newsbeitrag news:
[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.
Le Thu, 24 Jul 2003 22:18:47 +0200, Bertrand Motuelle a écrit :
"Goth" <oogothoo@yahoo.fr> schrieb im Newsbeitrag
news:pan.2003.07.24.19.18.29.828882@yahoo.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 :)
Le Thu, 24 Jul 2003 22:18:47 +0200, Bertrand Motuelle a écrit :
"Goth" schrieb im Newsbeitrag news:
[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 :)