Francois Gatto wrote:
xavier roguiez a écrit :
Bonsoir
Je suis à la recherche de pistes pour gérer proprement les erreurs
sous Calc.
J'ai un ensemble de fonctions qui s'appellent les unes les autres en
cascade.
Dans la fonction de bas niveau, je réalise un test voici un ECM
function fcm(byval fck as double) as variant
'résistance moyenne en compression à 28 jours
'entrée fck : MPa, sortie : fcm : MPa
if (fck <=90) then
fcm=fck+8.
else
fcm="": MsgBox("fck > C90/100 (EC2-3.1.2(2)P",16): stop
end if
end function
Au niveau de fcm, ça fonctionne correctement. Si je fais dans une
cellule sous calc =fcm(94), j'ai la boite d'alerte correcte.
Ensuite au niveau des fonctions appellantes, j'ai codé :
On error GoTo errDeroulement
temp=fcm(fck)
exit function
'%% gestion des erreurs %% errDeroulement:
if (err = 9) then
MsgBox("Plantage à partir de test",16): testFCM="": stop
endif
Resume Next end function
Y a t il un moyen de procéder différemment, je ne sais pas si
associer cette erreur 9 au dépassement de ma variable est une bonne
idée ?
D'avance merci pour toute information
xavier roguiez
Je pense qu'une définition plus large des cas d'erreurs peut être
préférable.
Par exemple :
errDeroulement:
Select case Err
Case 7 'Mémoire insuffisante
MsgBox("Plantage à partir de test",16)
testFCM=""
Stop
Case 9 'Indice hors limite
MsgBox("Plantage à partir de test",16)
testFCM=""
Stop
Case Else 'autre erreur on tente la poursuite ;)
MsgBox "Erreur " & Err & ": " & Error$
Resume Next
End Select
Francois
Merci pour le ré-encodage, c'est effectivement beaucoup plus clair comme
çà. Mais est ce une bonne idée de « dériver » des codes qui ont une
autre fonction initiale ? Il n'y a pas moyen d'utiliser des numéros
d'erreurs non attribués pour des besoins persos. Dans le cas présent, je
n'utilise pas de tableaux, donc le dépassement d'indice ne me sert pas,
mais dans le cas où je m'en servirais, je ne pourrais plus faire la
différence entre les deux erreurs ?
Xavier roguiez
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]