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
Anthony
Bonjour, Concernant le fonctionnement des exceptions, je me pose la question suivante
: Supposons une fonction de ce style :
void fonc1 () { float * p ; p = new float ; . }
une autre fonction qui appelle fonc1
void fonc2 () { fonc1() ; . }
Peut on intercepter une éventuelle CMemoryException qui se serait produite (échec de new) dans fonc1 dans le cas suivant :
void fonc3() { try // Interception d'une exception qui se serait produite dans fonc1 ? { fonc2() ; }
catch (CMemoryException) { . throw ; } }
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que dans fonc2 ?
Salut, En fait, tu peux intercepter ton exception n'importe où, même dans main() par exemple. Quand une exception est levée par une fonction, la pile d'execution de ton programme sera remontée, jusqu'à trouver un gestionnaire de l'exception dans les diverses fonctions appelantes. Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception standard mais fait partie des MFC à ma connaissance. new en toute logique lève une exception std::bad_alloc si elle échoue.
-- Anthony
Bonjour,
Concernant le fonctionnement des exceptions, je me pose la question
suivante
:
Supposons une fonction de ce style :
void fonc1 ()
{
float * p ;
p = new float ;
.
}
une autre fonction qui appelle fonc1
void fonc2 ()
{
fonc1() ;
.
}
Peut on intercepter une éventuelle CMemoryException qui se serait produite
(échec de new) dans fonc1 dans le cas suivant :
void fonc3()
{
try // Interception d'une exception qui se serait
produite dans fonc1 ?
{
fonc2() ;
}
catch (CMemoryException)
{
.
throw ;
}
}
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que
dans fonc2 ?
Salut,
En fait, tu peux intercepter ton exception n'importe où, même dans main()
par exemple.
Quand une exception est levée par une fonction, la pile d'execution de ton
programme sera remontée, jusqu'à trouver un gestionnaire de l'exception dans
les diverses fonctions appelantes.
Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception
standard mais fait partie des MFC à ma connaissance. new en toute logique
lève une exception std::bad_alloc si elle échoue.
Bonjour, Concernant le fonctionnement des exceptions, je me pose la question suivante
: Supposons une fonction de ce style :
void fonc1 () { float * p ; p = new float ; . }
une autre fonction qui appelle fonc1
void fonc2 () { fonc1() ; . }
Peut on intercepter une éventuelle CMemoryException qui se serait produite (échec de new) dans fonc1 dans le cas suivant :
void fonc3() { try // Interception d'une exception qui se serait produite dans fonc1 ? { fonc2() ; }
catch (CMemoryException) { . throw ; } }
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que dans fonc2 ?
Salut, En fait, tu peux intercepter ton exception n'importe où, même dans main() par exemple. Quand une exception est levée par une fonction, la pile d'execution de ton programme sera remontée, jusqu'à trouver un gestionnaire de l'exception dans les diverses fonctions appelantes. Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception standard mais fait partie des MFC à ma connaissance. new en toute logique lève une exception std::bad_alloc si elle échoue.
-- Anthony
Jmr
Merci ! "Anthony" a écrit dans le message de news:bk2abl$p7b$
Bonjour, Concernant le fonctionnement des exceptions, je me pose la question suivante
: Supposons une fonction de ce style :
void fonc1 () { float * p ; p = new float ; . }
une autre fonction qui appelle fonc1
void fonc2 () { fonc1() ; . }
Peut on intercepter une éventuelle CMemoryException qui se serait produite
(échec de new) dans fonc1 dans le cas suivant :
void fonc3() { try // Interception d'une exception qui se serait produite dans fonc1 ? { fonc2() ; }
catch (CMemoryException) { . throw ; } }
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que dans fonc2 ?
Salut, En fait, tu peux intercepter ton exception n'importe où, même dans main() par exemple. Quand une exception est levée par une fonction, la pile d'execution de ton programme sera remontée, jusqu'à trouver un gestionnaire de l'exception dans
les diverses fonctions appelantes. Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception standard mais fait partie des MFC à ma connaissance. new en toute logique lève une exception std::bad_alloc si elle échoue.
-- Anthony
Merci !
"Anthony" <fleury_anthony@hotmail.com> a écrit dans le message de
news:bk2abl$p7b$1@tem.asynchrone.net...
Bonjour,
Concernant le fonctionnement des exceptions, je me pose la question
suivante
:
Supposons une fonction de ce style :
void fonc1 ()
{
float * p ;
p = new float ;
.
}
une autre fonction qui appelle fonc1
void fonc2 ()
{
fonc1() ;
.
}
Peut on intercepter une éventuelle CMemoryException qui se serait
produite
(échec de new) dans fonc1 dans le cas suivant :
void fonc3()
{
try // Interception d'une exception qui se serait
produite dans fonc1 ?
{
fonc2() ;
}
catch (CMemoryException)
{
.
throw ;
}
}
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que
dans fonc2 ?
Salut,
En fait, tu peux intercepter ton exception n'importe où, même dans main()
par exemple.
Quand une exception est levée par une fonction, la pile d'execution de ton
programme sera remontée, jusqu'à trouver un gestionnaire de l'exception
dans
les diverses fonctions appelantes.
Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception
standard mais fait partie des MFC à ma connaissance. new en toute logique
lève une exception std::bad_alloc si elle échoue.
Merci ! "Anthony" a écrit dans le message de news:bk2abl$p7b$
Bonjour, Concernant le fonctionnement des exceptions, je me pose la question suivante
: Supposons une fonction de ce style :
void fonc1 () { float * p ; p = new float ; . }
une autre fonction qui appelle fonc1
void fonc2 () { fonc1() ; . }
Peut on intercepter une éventuelle CMemoryException qui se serait produite
(échec de new) dans fonc1 dans le cas suivant :
void fonc3() { try // Interception d'une exception qui se serait produite dans fonc1 ? { fonc2() ; }
catch (CMemoryException) { . throw ; } }
Ou doit-on intercepter l'exception dans fonc1 pour la relancer ainsi que dans fonc2 ?
Salut, En fait, tu peux intercepter ton exception n'importe où, même dans main() par exemple. Quand une exception est levée par une fonction, la pile d'execution de ton programme sera remontée, jusqu'à trouver un gestionnaire de l'exception dans
les diverses fonctions appelantes. Si aucun gestionnaire n'est trouvé, le programme se finit.
Par contre, pour ton information, CMemoryException n'est pas une exception standard mais fait partie des MFC à ma connaissance. new en toute logique lève une exception std::bad_alloc si elle échoue.
-- Anthony
Fabien LE LEZ
On Sun, 14 Sep 2003 20:22:44 +0200, "Jmr" wrote:
Merci ! "Anthony" a écrit dans le message de
A lire d'urgence avant de continuer ta découverte d'Usenet : <http://www.giromini.org/usenet-fr/repondre.html>
On Sun, 14 Sep 2003 20:22:44 +0200, "Jmr" <jmr.div@wanadoo.fr> wrote:
Merci !
"Anthony" <fleury_anthony@hotmail.com> a écrit dans le message de
A lire d'urgence avant de continuer ta découverte d'Usenet :
<http://www.giromini.org/usenet-fr/repondre.html>