Ainsi, quand je récupère mes exception, je peux afficher à l'écran le nom de
la fonction qui l'a lancée
et ainsi savoir où se trouve l'endroit quasi-exact ou a eu lieu le problème.
Mais bon, c'est vraiment pas
très joli, et en plus, ça peut être source d'erreur puisque le nom de la
fonction est "entré à la main"... Il
n'existe pas une méthode plus propre pour connaitre l'origine d'une
exception ?
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message news:
5u20ivkes10ifnm2it7i66feiou2pkf3m1@4ax.com...
On Thu, 24 Jul 2003 18:32:26 +0200, "Faussard Guillaume"
Autre solution, pas forcément plus propre mais un peu plus sûre :
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça
oblige à avoir les sources devant les yeux
pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode,
l'utilisateur lamba du logiciel
peut comprendre assez faciulement la cause de l'exception.
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
Julien Blanc
Faussard Guillaume wrote:
"Fabien LE LEZ" a écrit dans le message news:
On Thu, 24 Jul 2003 18:32:26 +0200, "Faussard Guillaume" Autre solution, pas forcément plus propre mais un peu plus sûre :
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
normalement, le debogueur fourni avec ton environnement de développement doit pouvoir te permettre cela. Si tu utilises gcc, ddd est assez visuel et pas trop compliqué d'emploi.
-- Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
Faussard Guillaume wrote:
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message news:
5u20ivkes10ifnm2it7i66feiou2pkf3m1@4ax.com...
On Thu, 24 Jul 2003 18:32:26 +0200, "Faussard Guillaume"
Autre solution, pas forcément plus propre mais un peu plus sûre :
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça
oblige à avoir les sources devant les yeux
pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode,
l'utilisateur lamba du logiciel
peut comprendre assez faciulement la cause de l'exception.
normalement, le debogueur fourni avec ton environnement de développement
doit pouvoir te permettre cela. Si tu utilises gcc, ddd est assez visuel
et pas trop compliqué d'emploi.
--
Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
normalement, le debogueur fourni avec ton environnement de développement doit pouvoir te permettre cela. Si tu utilises gcc, ddd est assez visuel et pas trop compliqué d'emploi.
-- Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
Christophe de Vienne
"Faussard Guillaume" <guillaume.faussard0talcdotfr (replace dot and 0)> wrote:
"Fabien LE LEZ" a écrit dans le message news:
On Thu, 24 Jul 2003 18:32:26 +0200, "Faussard Guillaume" Autre solution, pas forcément plus propre mais un peu plus sûre :
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
-- Christophe de Vienne Experience is something you don't get until just after you need it. Oliver's Law.
"Faussard Guillaume" <guillaume.faussard0talcdotfr (replace dot and 0)>
wrote:
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message news:
5u20ivkes10ifnm2it7i66feiou2pkf3m1@4ax.com...
On Thu, 24 Jul 2003 18:32:26 +0200, "Faussard Guillaume"
Autre solution, pas forcément plus propre mais un peu plus sûre :
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça
oblige à avoir les sources devant les yeux
pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode,
l'utilisateur lamba du logiciel
peut comprendre assez faciulement la cause de l'exception.
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a
__PRETTY_FUNCTION__.
--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.
Oui, j'avais pensé à quelque chose coùmme ça pendant un moment, mais ça oblige à avoir les sources devant les yeux pour comprendre ce qu'il se passe, tandis qu'avec le nom de la méthode, l'utilisateur lamba du logiciel peut comprendre assez faciulement la cause de l'exception.
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
-- Christophe de Vienne Experience is something you don't get until just after you need it. Oliver's Law.
Jean-Marc Bourguet
Christophe de Vienne writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Christophe de Vienne <cdevienne@alphacent.com> writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a
__PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Christophe de Vienne
Jean-Marc Bourguet wrote:
Christophe de Vienne writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Je n'en ai pas la moindre idée :-) D'un point de vue pratique je l'utilise, mais sans réellement savoir sa portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui est, semble-t-il, spécifique à gcc.
A+
-- Christophe de Vienne Experience is something you don't get until just after you need it. Oliver's Law.
Jean-Marc Bourguet wrote:
Christophe de Vienne <cdevienne@alphacent.com> writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y
a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Je n'en ai pas la moindre idée :-)
D'un point de vue pratique je l'utilise, mais sans réellement savoir sa
portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui
est, semble-t-il, spécifique à gcc.
A+
--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Je n'en ai pas la moindre idée :-) D'un point de vue pratique je l'utilise, mais sans réellement savoir sa portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui est, semble-t-il, spécifique à gcc.
A+
-- Christophe de Vienne Experience is something you don't get until just after you need it. Oliver's Law.
David Brabant
"Christophe de Vienne" wrote
D'un point de vue pratique je l'utilise, mais sans réellement savoir sa portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui est, semble-t-il, spécifique à gcc.
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également __FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour la signature.
-- David
"Christophe de Vienne" <cdevienne@alphacent.com> wrote
D'un point de vue pratique je l'utilise, mais sans réellement savoir sa
portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui
est, semble-t-il, spécifique à gcc.
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également
__FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour
la signature.
D'un point de vue pratique je l'utilise, mais sans réellement savoir sa portabilité. Cela dit ça à l'air plus standard que __PRETTY_FUNCTION__ qui est, semble-t-il, spécifique à gcc.
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également __FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour la signature.
-- David
Richard Delorme
Christophe de Vienne writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Non, en C99 c'est __func__, qui n'est pas une macro mais une chaîne de caractère constante et statique (static const char __func__[] = ...).
-- Richard
Christophe de Vienne <cdevienne@alphacent.com> writes:
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y
a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Non, en C99 c'est __func__, qui n'est pas une macro mais une chaîne de
caractère constante et statique (static const char __func__[] = ...).
Tu n'as qu'à utiliser la macro __FUNCTION__, et si tu utilises gcc, il y a __PRETTY_FUNCTION__.
C'est pas du C99, __FUNCTION__?
Non, en C99 c'est __func__, qui n'est pas une macro mais une chaîne de caractère constante et statique (static const char __func__[] = ...).
-- Richard
Gabriel Dos Reis
Jean-Marc Bourguet writes:
| Gabriel Dos Reis writes: | | > Jean-Marc Bourguet writes: | > | > | C'est pas du C99, __FUNCTION__? | > | > non, cela aurait été trop facile d'homologuer une pratique existante :-) | > | > C99 l'appelle __func__. | | Devinons, parce que __FUNCTION__ ressemble a une macro et que ce ne | peut pas en etre une?
Cela peut être une explication officielle d'un porte paraole du comité :-)
Je n'ai la moindre idée de comment les débats se sont déroulés.
-- Gaby
Jean-Marc Bourguet <jm@bourguet.org> writes:
| Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
|
| > Jean-Marc Bourguet <jm@bourguet.org> writes:
| >
| > | C'est pas du C99, __FUNCTION__?
| >
| > non, cela aurait été trop facile d'homologuer une pratique existante :-)
| >
| > C99 l'appelle __func__.
|
| Devinons, parce que __FUNCTION__ ressemble a une macro et que ce ne
| peut pas en etre une?
Cela peut être une explication officielle d'un porte paraole du comité :-)
Je n'ai la moindre idée de comment les débats se sont déroulés.
| Gabriel Dos Reis writes: | | > Jean-Marc Bourguet writes: | > | > | C'est pas du C99, __FUNCTION__? | > | > non, cela aurait été trop facile d'homologuer une pratique existante :-) | > | > C99 l'appelle __func__. | | Devinons, parce que __FUNCTION__ ressemble a une macro et que ce ne | peut pas en etre une?
Cela peut être une explication officielle d'un porte paraole du comité :-)
Je n'ai la moindre idée de comment les débats se sont déroulés.
-- Gaby
Fabien LE LEZ
On Fri, 25 Jul 2003 11:26:14 +0200, "David Brabant" wrote:
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également __FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour la signature.
Par contre, aucun n'existe en BC++ 5.02 (faut dire aussi qu'il est déjà très très vieux :-/ )
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également
__FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour
la signature.
Par contre, aucun n'existe en BC++ 5.02 (faut dire aussi qu'il est
déjà très très vieux :-/ )
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Fri, 25 Jul 2003 11:26:14 +0200, "David Brabant" wrote:
Pour info, __FUNCTION__ existe en VC++ 7.0 qui offre également __FUNCDNAME__ pour le nom décoré et __FUNCSIG__ pour la signature.
Par contre, aucun n'existe en BC++ 5.02 (faut dire aussi qu'il est déjà très très vieux :-/ )
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html