OVH Cloud OVH Cloud

Remonter une erreur vers la méthode de la classe de base ?

2 réponses
Avatar
Fab
Bonjour,

J'ai une classe A avec une méthode A1()
Et une classe B avec une méthode B1()

L'implémentation de A1() est la suivante dans les grandes lignes:
try
{return B1();}
catch(Exception e)
{Console.Write(e.Message);}

L'implémentation de B1() est la suivante dans les grandes lignes:
try
{instruction 1;instruction 2;instruction 3;}
catch(Exception e)
{Console.Write(e.Message);}

Si une erreur arrive dans B1(), comment puis-je savoir dans A1() qu'une
erreur est survenue et laquelle ? Car comme le "try" de B1() a attrapé
l'erreur du coup A1() ne plante pas.

Voilà pour une explication simple, sachant que je n'ai décrit ici que 2
niveaux. Il se pourrait que nous ayons une classe C avec une méthode C1() qui
est elle-même appelée par la méthode B1().

J'espère avoir été clair.

Merci à tous.

Fabo

2 réponses

Avatar
Christophe QUEVAL
Bonjour,

"Throw(e)" permet de remonter l'erreur à l'appelant.

Christophe
"Fab" a écrit dans le message de news:

Bonjour,

J'ai une classe A avec une méthode A1()
Et une classe B avec une méthode B1()

L'implémentation de A1() est la suivante dans les grandes lignes:
try
{return B1();}
catch(Exception e)
{Console.Write(e.Message);}

L'implémentation de B1() est la suivante dans les grandes lignes:
try
{instruction 1;instruction 2;instruction 3;}
catch(Exception e)
{Console.Write(e.Message);}

Si une erreur arrive dans B1(), comment puis-je savoir dans A1() qu'une
erreur est survenue et laquelle ? Car comme le "try" de B1() a attrapé
l'erreur du coup A1() ne plante pas.

Voilà pour une explication simple, sachant que je n'ai décrit ici que 2
niveaux. Il se pourrait que nous ayons une classe C avec une méthode C1()
qui
est elle-même appelée par la méthode B1().

J'espère avoir été clair.

Merci à tous.

Fabo


Avatar
Paul Bacelar
Il ne faut catcher les exceptions que pour les traiter, sinon, autant
utiliser des codes d'erreurs.

--
Paul Bacelar


"Christophe QUEVAL" wrote in
message news:
Bonjour,

"Throw(e)" permet de remonter l'erreur à l'appelant.

Christophe
"Fab" a écrit dans le message de news:

> Bonjour,
>
> J'ai une classe A avec une méthode A1()
> Et une classe B avec une méthode B1()
>
> L'implémentation de A1() est la suivante dans les grandes lignes:
> try
> {return B1();}
> catch(Exception e)
> {Console.Write(e.Message);}
>
> L'implémentation de B1() est la suivante dans les grandes lignes:
> try
> {instruction 1;instruction 2;instruction 3;}
> catch(Exception e)
> {Console.Write(e.Message);}
>
> Si une erreur arrive dans B1(), comment puis-je savoir dans A1() qu'une
> erreur est survenue et laquelle ? Car comme le "try" de B1() a attrapé
> l'erreur du coup A1() ne plante pas.
>
> Voilà pour une explication simple, sachant que je n'ai décrit ici que 2
> niveaux. Il se pourrait que nous ayons une classe C avec une méthode


C1()
> qui
> est elle-même appelée par la méthode B1().
>
> J'espère avoir été clair.
>
> Merci à tous.
>
> Fabo