[future évolution ?] bloc else pour les excpetions
36 réponses
Benoit Dejean
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
--
Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée }
// code exécuté si aucune exception n'a été lancée
Chris
"Benoit Dejean" <bnet@ifrance.com> a écrit dans le message de
news:pan.2003.07.06.08.54.57.5958@ifrance.com...
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
Tu peux considérer le code ci-dessous comme une alternative :
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
// code exécuté si aucune exception n'a été lancée
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée }
// code exécuté si aucune exception n'a été lancée
Chris
Michaël Monerau
Christophe Lephay wrote:
"Benoit Dejean" a écrit dans le message de news:
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch()
catch (...) plutôt ;)
{ // code exécuté si un exception est lancée
et un return dans ce catch...
}
// code exécuté si aucune exception n'a été lancée --
<-= Michaël "Cortex" Monerau =->
Christophe Lephay wrote:
"Benoit Dejean" <bnet@ifrance.com> a écrit dans le message de
news:pan.2003.07.06.08.54.57.5958@ifrance.com...
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
Tu peux considérer le code ci-dessous comme une alternative :
try
{
// code pouvant lancer une exception
}
catch()
catch (...) plutôt ;)
{
// code exécuté si un exception est lancée
et un return dans ce catch...
}
// code exécuté si aucune exception n'a été lancée
--
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch()
catch (...) plutôt ;)
{ // code exécuté si un exception est lancée
et un return dans ce catch...
}
// code exécuté si aucune exception n'a été lancée --
<-= Michaël "Cortex" Monerau =->
Benoit Dejean
Le Sun, 06 Jul 2003 10:45:40 +0000, Michaël Monerau a ecrit:
Christophe Lephay wrote:
"Benoit Dejean" a écrit dans le message de news:
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
en fait comme en Python par exemple
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch()
j'avais maladroitement écrit comme ça pour exprimer la présence d'un ou plusieurs blocs catch
catch (...) plutôt ;)
c'est vrai que ça a plus de sens ainsi, mais moi j'aimerais exécuter du code si aucune exception n'a été lancée et non capturer toutes les exceptions
{ // code exécuté si un exception est lancée
et un return dans ce catch...
je n'ai pas forcément envie de sortir de ma fonction si j'attrape une exception
}
// code exécuté si aucune exception n'a été lancée
ça ne réponds pas à ma question ni à mon besoin. pour le moment j'utilise bâtardement des booléens, mais c'est lourd et hasardeux comme technique.
le problème venant quand on multiplie les blocs catch
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle, ce qui est loin d'être incompatible avec la notion d'Art.
Le Sun, 06 Jul 2003 10:45:40 +0000, Michaël Monerau a ecrit:
Christophe Lephay wrote:
"Benoit Dejean" <bnet@ifrance.com> a écrit dans le message de
news:pan.2003.07.06.08.54.57.5958@ifrance.com...
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
en fait comme en Python par exemple
Tu peux considérer le code ci-dessous comme une alternative :
try
{
// code pouvant lancer une exception
}
catch()
j'avais maladroitement écrit comme ça pour exprimer la présence d'un ou
plusieurs blocs catch
catch (...) plutôt ;)
c'est vrai que ça a plus de sens ainsi, mais moi j'aimerais exécuter du
code si aucune exception n'a été lancée et non capturer toutes les
exceptions
{
// code exécuté si un exception est lancée
et un return dans ce catch...
je n'ai pas forcément envie de sortir de ma fonction si j'attrape une
exception
}
// code exécuté si aucune exception n'a été lancée
ça ne réponds pas à ma question ni à mon besoin. pour le moment
j'utilise bâtardement des booléens, mais c'est lourd et hasardeux comme
technique.
Le Sun, 06 Jul 2003 10:45:40 +0000, Michaël Monerau a ecrit:
Christophe Lephay wrote:
"Benoit Dejean" a écrit dans le message de news:
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
en fait comme en Python par exemple
Tu peux considérer le code ci-dessous comme une alternative :
try { // code pouvant lancer une exception } catch()
j'avais maladroitement écrit comme ça pour exprimer la présence d'un ou plusieurs blocs catch
catch (...) plutôt ;)
c'est vrai que ça a plus de sens ainsi, mais moi j'aimerais exécuter du code si aucune exception n'a été lancée et non capturer toutes les exceptions
{ // code exécuté si un exception est lancée
et un return dans ce catch...
je n'ai pas forcément envie de sortir de ma fonction si j'attrape une exception
}
// code exécuté si aucune exception n'a été lancée
ça ne réponds pas à ma question ni à mon besoin. pour le moment j'utilise bâtardement des booléens, mais c'est lourd et hasardeux comme technique.
le problème venant quand on multiplie les blocs catch
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle, ce qui est loin d'être incompatible avec la notion d'Art.
Michel Michaud
Dans news:, Benoit
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
J'espère que tu remarques qu'on est très près de ceci (ou j'ai numéroté les blocs) :
try { // code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B) } catch() { // code exécuté si un exception est lancée (C) }
La différence étant si le code B peut lever une exception qui serait capté par le(s) bloc(s) C (et potentiellement une portée différente de ce qui serait déclaré dans B).
Il y a diverses solutions, mais as-tu du code plus précis pour voir pourquoi tu veux faire ?
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:pan.2003.07.06.08.54.57.5958@ifrance.com, Benoit
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
J'espère que tu remarques qu'on est très près de ceci
(ou j'ai numéroté les blocs) :
try
{
// code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B)
}
catch()
{
// code exécuté si un exception est lancée (C)
}
La différence étant si le code B peut lever une exception qui
serait capté par le(s) bloc(s) C (et potentiellement une portée
différente de ce qui serait déclaré dans B).
Il y a diverses solutions, mais as-tu du code plus précis pour
voir pourquoi tu veux faire ?
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
J'espère que tu remarques qu'on est très près de ceci (ou j'ai numéroté les blocs) :
try { // code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B) } catch() { // code exécuté si un exception est lancée (C) }
La différence étant si le code B peut lever une exception qui serait capté par le(s) bloc(s) C (et potentiellement une portée différente de ce qui serait déclaré dans B).
Il y a diverses solutions, mais as-tu du code plus précis pour voir pourquoi tu veux faire ?
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Michel Michaud
Dans news:, Benoit
ça ne réponds pas à ma question ni à mon besoin. pour le moment j'utilise bâtardement des booléens, mais c'est lourd et hasardeux comme technique.
le problème venant quand on multiplie les blocs catch
Si c'est assez près de ce que tu veux, alors inverse simplement ton initialisation :
bool except=true; // Ou inverser le nom !
try { // ...
except= false; } catch([...]) { // ... }
if(!except) { // ... }
(mais encore une fois, j'attends de mieux comprendre ce que tu veux vraiment faire avant de proposer de meilleures solutions) -- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:pan.2003.07.06.11.19.20.438077@ifrance.com, Benoit
ça ne réponds pas à ma question ni à mon besoin. pour le moment
j'utilise bâtardement des booléens, mais c'est lourd et hasardeux
comme technique.
le problème venant quand on multiplie les blocs catch
Si c'est assez près de ce que tu veux, alors inverse
simplement ton initialisation :
bool except=true; // Ou inverser le nom !
try
{
// ...
except= false;
}
catch([...])
{
// ...
}
if(!except)
{
// ...
}
(mais encore une fois, j'attends de mieux comprendre ce
que tu veux vraiment faire avant de proposer de meilleures
solutions)
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
le problème venant quand on multiplie les blocs catch
Si c'est assez près de ce que tu veux, alors inverse simplement ton initialisation :
bool except=true; // Ou inverser le nom !
try { // ...
except= false; } catch([...]) { // ... }
if(!except) { // ... }
(mais encore une fois, j'attends de mieux comprendre ce que tu veux vraiment faire avant de proposer de meilleures solutions) -- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Nmsmart
Bonjour,
je cherche un developpeur chevronné en C++ pour participer à la finalisation d'un produit dans le cadre de creation d'une societe d'edition de logiciels; Serais tu interresse a participer a cette aventure ou à defaut connaitrais tu quelqu'un qui le serait. merci pour ta réponse.
"Benoit Dejean" a écrit dans le message news:
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
Bonjour,
je cherche un developpeur chevronné en C++ pour participer à la finalisation
d'un produit dans le cadre de creation d'une societe d'edition de logiciels;
Serais tu interresse a participer a cette aventure ou à defaut connaitrais
tu quelqu'un qui le serait. merci pour ta réponse.
"Benoit Dejean" <bnet@ifrance.com> a écrit dans le message news:
pan.2003.07.06.08.54.57.5958@ifrance.com...
est-ce qu'il est prévu d'apporter cette fonctionnalité
try
{
// code pouvant lancer une exception
}
catch()
{
// code exécuté si un exception est lancée
}
else
{
// code exécuté si aucune exception n'a été lancée
}
--
Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi
nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
je cherche un developpeur chevronné en C++ pour participer à la finalisation d'un produit dans le cadre de creation d'une societe d'edition de logiciels; Serais tu interresse a participer a cette aventure ou à defaut connaitrais tu quelqu'un qui le serait. merci pour ta réponse.
"Benoit Dejean" a écrit dans le message news:
est-ce qu'il est prévu d'apporter cette fonctionnalité
try { // code pouvant lancer une exception } catch() { // code exécuté si un exception est lancée } else { // code exécuté si aucune exception n'a été lancée }
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
Fabien LE LEZ
On Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
-- 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 Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" <nmsmart@wanadoo.fr>
wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
--
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 Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
-- 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
Christophe Lephay
"Fabien LE LEZ" a écrit dans le message de news:
On Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
Encore un commercial qui s'imagine faire fortune sur le dos d'un technicien qu'il aveuglera de son charisme ;)
Chris
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message de
news:b68hgvkdcp4hrdio1m5tb0lrf39heu9f0f@4ax.com...
On Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" <nmsmart@wanadoo.fr>
wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
Encore un commercial qui s'imagine faire fortune sur le dos d'un technicien
qu'il aveuglera de son charisme ;)
On Sun, 6 Jul 2003 23:06:00 +0200, "Nmsmart" wrote:
je cherche un developpeur chevronné en C++
Va le chercher ailleurs, petit con.
Encore un commercial qui s'imagine faire fortune sur le dos d'un technicien qu'il aveuglera de son charisme ;)
Chris
Benoit Dejean
Le Sun, 06 Jul 2003 10:55:54 -0400, Michel Michaud a écrit :
Dans news:, Benoit Dejean
J'espère que tu remarques qu'on est très près de ceci (ou j'ai numéroté les blocs) :
try { // code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B) } catch() { // code exécuté si un exception est lancée (C) }
La différence étant si le code B peut lever une exception qui serait capté par le(s) bloc(s) C (et potentiellement une portée différente de ce qui serait déclaré dans B).
j'avais bien compris. on est près, mais ce n'est pas ça.
Il y a diverses solutions, mais as-tu du code plus précis pour voir pourquoi tu veux faire ?
je n'ai pas vraiment de code sous la main, puisque j'évite cette manière de faire en C++, mais programmant également beaucoup en python, j'utilise énormément ceci dans mes scripts.
voilà un petit exemple
Objet o;
try { o= fonction(); } catch(exception &e) { // traitement d'erreur // mais qui n'implique pas d'instruction d'arrêt } else { // AUCUNE exception n'a été déclenchée // (et non pas aucune exception capturée) // opérations avec o // délibérément hors contrôle du try précédent o.print(); // par exemple }
mon idée n'est évidemment pas de tout mélanger, juste d'évoquer cette fonctionnalité. Je n'ai pas l'ambition de dire ce qui est bien ou pas, mais comme j'utilise souvent cette technique par ailleurs, je vous en fait par.
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle, ce qui est loin d'être incompatible avec la notion d'Art.
Le Sun, 06 Jul 2003 10:55:54 -0400, Michel Michaud a écrit :
Dans news:pan.2003.07.06.08.54.57.5958@ifrance.com, Benoit Dejean
J'espère que tu remarques qu'on est très près de ceci (ou j'ai
numéroté les blocs) :
try
{
// code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B)
}
catch()
{
// code exécuté si un exception est lancée (C)
}
La différence étant si le code B peut lever une exception qui serait
capté par le(s) bloc(s) C (et potentiellement une portée différente
de ce qui serait déclaré dans B).
j'avais bien compris. on est près, mais ce n'est pas ça.
Il y a diverses solutions, mais as-tu du code plus précis pour voir
pourquoi tu veux faire ?
je n'ai pas vraiment de code sous la main, puisque j'évite cette manière
de faire en C++, mais programmant également beaucoup en python, j'utilise
énormément ceci dans mes scripts.
voilà un petit exemple
Objet o;
try
{
o= fonction();
}
catch(exception &e)
{
// traitement d'erreur
// mais qui n'implique pas d'instruction d'arrêt
}
else
{
// AUCUNE exception n'a été déclenchée
// (et non pas aucune exception capturée)
// opérations avec o
// délibérément hors contrôle du try précédent
o.print(); // par exemple
}
mon idée n'est évidemment pas de tout mélanger, juste d'évoquer cette
fonctionnalité. Je n'ai pas l'ambition de dire ce qui est bien ou pas,
mais comme j'utilise souvent cette technique par ailleurs, je vous en fait
par.
--
Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
Le Sun, 06 Jul 2003 10:55:54 -0400, Michel Michaud a écrit :
Dans news:, Benoit Dejean
J'espère que tu remarques qu'on est très près de ceci (ou j'ai numéroté les blocs) :
try { // code pouvant lancer une exception (A)
// code exécuté si aucune exception n'a été lancée (B) } catch() { // code exécuté si un exception est lancée (C) }
La différence étant si le code B peut lever une exception qui serait capté par le(s) bloc(s) C (et potentiellement une portée différente de ce qui serait déclaré dans B).
j'avais bien compris. on est près, mais ce n'est pas ça.
Il y a diverses solutions, mais as-tu du code plus précis pour voir pourquoi tu veux faire ?
je n'ai pas vraiment de code sous la main, puisque j'évite cette manière de faire en C++, mais programmant également beaucoup en python, j'utilise énormément ceci dans mes scripts.
voilà un petit exemple
Objet o;
try { o= fonction(); } catch(exception &e) { // traitement d'erreur // mais qui n'implique pas d'instruction d'arrêt } else { // AUCUNE exception n'a été déclenchée // (et non pas aucune exception capturée) // opérations avec o // délibérément hors contrôle du try précédent o.print(); // par exemple }
mon idée n'est évidemment pas de tout mélanger, juste d'évoquer cette fonctionnalité. Je n'ai pas l'ambition de dire ce qui est bien ou pas, mais comme j'utilise souvent cette technique par ailleurs, je vous en fait par.
-- Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle, ce qui est loin d'être incompatible avec la notion d'Art.
Benoit Dejean
Le Tue, 08 Jul 2003 03:59:42 +0200, Fabien LE LEZ a écrit :
On Mon, 07 Jul 2003 21:12:13 +0200, Benoit Dejean wrote:
Objet o;
try { o= fonction(); } catch(exception &e) { // traitement d'erreur // mais qui n'implique pas d'instruction d'arrêt } else
Essaie en remplaçant le "else" par catch (...) { throw; }
ça ne remplace pas du tout. Dans le cas ou l'exception déclenchée est inattendue, elle remonte, else ou pas else. d'ailleurs il me semble que ce bloc est le comportement par défaut non? mais je vois ou tu veux en venir. mais moi j'attends du bloc else, c'est qu'il soit exécuté si aucune exception n'est lancée: si une exception attendue est survenue ou si une exception inattendue est survenue (et remontée donc, normal)
je suis pas clair?
{ // AUCUNE exception n'a été déclenchée // (et non pas aucune exception capturée) // opérations avec o // délibérément hors contrôle du try précédent o.print(); // par exemple }
-- "Ne perdez pas de vue qu'un programme rapide et incorrect est d'une utilité presque nulle." Ce qui est loin d'être incompatible avec la notion d'Art.
Le Tue, 08 Jul 2003 03:59:42 +0200, Fabien LE LEZ a écrit :
try
{
o= fonction();
}
catch(exception &e)
{
// traitement d'erreur
// mais qui n'implique pas d'instruction d'arrêt
}
else
Essaie en remplaçant le "else" par
catch (...) { throw; }
ça ne remplace pas du tout. Dans le cas ou l'exception déclenchée est
inattendue, elle remonte, else ou pas else. d'ailleurs il me semble que ce
bloc est le comportement par défaut non? mais je vois ou tu veux en
venir. mais moi j'attends du bloc else, c'est qu'il soit exécuté si
aucune exception n'est lancée: si une exception attendue est survenue ou
si une exception inattendue est survenue (et remontée donc, normal)
je suis pas clair?
{
// AUCUNE exception n'a été déclenchée // (et non pas aucune
exception capturée) // opérations avec o // délibérément hors
contrôle du try précédent o.print(); // par
exemple
}
--
"Ne perdez pas de vue qu'un programme rapide et incorrect est d'une utilité presque nulle."
Ce qui est loin d'être incompatible avec la notion d'Art.
Le Tue, 08 Jul 2003 03:59:42 +0200, Fabien LE LEZ a écrit :
On Mon, 07 Jul 2003 21:12:13 +0200, Benoit Dejean wrote:
Objet o;
try { o= fonction(); } catch(exception &e) { // traitement d'erreur // mais qui n'implique pas d'instruction d'arrêt } else
Essaie en remplaçant le "else" par catch (...) { throw; }
ça ne remplace pas du tout. Dans le cas ou l'exception déclenchée est inattendue, elle remonte, else ou pas else. d'ailleurs il me semble que ce bloc est le comportement par défaut non? mais je vois ou tu veux en venir. mais moi j'attends du bloc else, c'est qu'il soit exécuté si aucune exception n'est lancée: si une exception attendue est survenue ou si une exception inattendue est survenue (et remontée donc, normal)
je suis pas clair?
{ // AUCUNE exception n'a été déclenchée // (et non pas aucune exception capturée) // opérations avec o // délibérément hors contrôle du try précédent o.print(); // par exemple }
-- "Ne perdez pas de vue qu'un programme rapide et incorrect est d'une utilité presque nulle." Ce qui est loin d'être incompatible avec la notion d'Art.