Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je travaille avec PB10.
J'ai besoin pour un traitement precis d'intercepter une erreur (error.number = 2 => null object reference ....)
Au niveau de l'application, nous utilisons l'evenement <systemerror()> pour intercepter les erreurs (affichage + arret de l'application)
Pour ce traitement precis, je voudrais recuperer l'erreur 2 pour afficher un message mais continuer l'application.
A priori, je peux utiliser l'instruction <TRY-CATCH> mais je ne sais pas la syntaxe dans le CATCH.
J'ai fais un essai en codiant le TRY et en utilisant FINALLY pour coder mon message, cela marche mais l'événement <systemerror()> se déclenche après et arrete le traitement.
Connaissez vous la manière d'utiliser TRY-CATCH-FINALLY (pas d'exemple dans PB)
Cordialement
Le gone de Lyon
Dernière modification par le_gone_de_lyon (23-04-2009 08:40:46)
Hors ligne
Bonjour,
TRY // le traitement CATCH ( RunTimeError rte ) MessageBox( 'Erreur', rte.GetMessage() ) FINALLY // nettoyage END TRY
Pour que cela fonctionne dans l'IDE PB : Menu Tools > System Options > General > Just In Time Debugging à décocher
Hors ligne
Bonjour,
Merci pour ta réponse erasorz.
Je viens de tester la syntaxe, c'est OK
Mais j'intercepte toutes les erreurs, or je voudrais intercepter seulement l'erreur 2 (rte.number = 2) pas les autres.
Comment le preciser dans le CATCH ?
Pour les autres erreurs, j'ai l'evenement <systemerror> au niveau du projet !!!!!!!!
Cordialement
Le gone de lyon
Hors ligne
peut-être en codant un truc dans le genre :
TRY // le traitement CATCH ( RunTimeError rte ) If rte.number = 2 Then MessageBox( 'Erreur', rte.GetMessage() ) Else Throw rte End If FINALLY // nettoyage END TRY
Hors ligne
Bonjour,
Merci erasorz
C'est Parfait
Cordialement
Le gone de Lyon
Hors ligne