Arret brutal [Résolu]

Signaler
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
-
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
-
Voila, dans ma source (Résolutrice) je lis une equation au clavier, et lorsque celle-ci est lue, je la calcul. Comme elle sert pour les calculs "complexe", il y a plus d'une opération a calculer.

Bref, je lance RésousEquation( string eq ) qui lancera plusieurs fonctions, voir se relancera lui meme dans certaines circonstances.

Parcontre, ce qui m'interesse, c'est de lancer "ResousEquation( string eq )" et peu importe ou il est rendu, la focntion auquel il est, si sa ne fonctionne pas, tout les calculs s'arrete. Un peu comem un crash, mais sans les effets secondaires, soit l'Arret du programme

Moyen de faire sa ?

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Ah, la gestion d'exceptions ?

dans l'exemple :
private static void main()
{
int i = A();
try
{
int y = D(i);
// SI JAI PAS EU D'ERREUR
Console.WriteLine("i: " + i + "\ny: " + y);
catch ( DivideByZeroException )
{
// SINON
Console.WriteLine( "Division par 0" );
}
catch
{
// gestion des autres erreurs
Console.WriteLine( "Erreur inconnue");
}
}

private static int C( int a )
{
if( a == 0 )
{
// C'est ici que je veux tout arreter, car division par zero par exemple
throw new DivideByZeroException();
}
else
return 18/a;
}

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
euh, tu pourrais être plus clair svp

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
====================
private static void main()
{
int i = A();
int y = D(i);
// SI JAI PAS EU D'ERREUR
Console.WriteLine("i: " + i + "\ny: " + y);
// SINON
Console.WriteLine( "Division par 0" );
}
private static int A()
{
return 5;
}
private static int D( int a )
{
if( a < 5 )
B( a );
C( a );
}
private static int B( int a )
{
return a+C(a);
}
private static int C( int a )
{
if( a == 0 )
{
// C'est ici que je veux tout arreter, car division par zero par exemple
}
else
return 18/a;
}
====================
Voila un exemple bidon qui illuste ce que je veut faire, soit peu importe de ou jai appeler le C.

J'espere que c'est plsu clair

Eric
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
Merci, je croit que de cette maniere j'arriverai a faire quelquechose

Eric