3 messages in org.openoffice.fr.progRe: [prog] Gestion des erreurs sous O...
FromSent OnAttachments
xavier roguiezJan 23, 2007 11:15 am 
Francois GattoJan 23, 2007 9:12 pm 
xavier roguiezJan 24, 2007 5:48 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Gestion des erreurs sous Open Office 2.0Actions...
From:xavier roguiez (xr@geo.hmg.inpg.fr)
Date:Jan 24, 2007 5:48:55 am
List:org.openoffice.fr.prog

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

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

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 ?