PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 23-04-2009 07:06:13

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

[RESOLU] Interception des erreurs avec PB

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

 

#2 23-04-2009 07:50:28

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Interception des erreurs avec PB

Bonjour,

Code: pb

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


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 23-04-2009 08:13:24

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Interception des erreurs avec PB

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

 

#4 23-04-2009 08:18:58

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Interception des erreurs avec PB

peut-être en codant un truc dans le genre :

Code: pb

TRY
   
   // le traitement
   
CATCH ( RunTimeError rte )

   If rte.number = 2 Then

      MessageBox( 'Erreur', rte.GetMessage() ) 

   Else

      Throw rte

   End If

FINALLY

   // nettoyage

END TRY

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 23-04-2009 08:40:24

le_gone_de_lyon  
Membre Geek
Lieu: LYON
Date d'inscription: 12-09-2006
Messages: 64
Pépites: 203
Banque: 0

Re: [RESOLU] Interception des erreurs avec PB

Bonjour,

   Merci erasorz

   C'est Parfait

Cordialement

Le gone de Lyon

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22