4D v14.3

Un débogueur, pour quoi faire ?

Accueil

 
4D v14.3
Un débogueur, pour quoi faire ?

Un débogueur, pour quoi faire ?  


 

 

Lorsque vous développez et testez vos méthodes, il est important que vous puissiez repérer et corriger les erreurs qui peuvent s'y être glissées.

Vous pouvez commettre plusieurs types d'erreurs en utilisant le langage : des fautes de frappe, des erreurs de syntaxe ou liées à l'environnement, des erreurs logiques ou de conception, ou encore des erreurs d'exécution (Runtime).

Les fautes de frappe sont détectées directement dans l'éditeur de méthodes et sont indiquées par un libellé de couleur rouge ainsi qu'un message dans la zone d'information située en bas de la fenêtre. Cette fenêtre signale une faute de frappe :

Note : Les commentaires ont été manuellement ajoutés pour cet exemple. Seule la couleur est modifiée par 4D à l'endroit de l'erreur.

De telles fautes de frappe provoquent généralement des erreurs de syntaxe (dans ce cas, le nom de la table est inconnu). La zone d'informations de la fenêtre affiche la cause de l'erreur au moment de la validation de la ligne d'instructions.

Vous pouvez alors corriger l'erreur de frappe et appuyer sur la touche Entrée (du clavier numérique) pour valider la correction. Pour plus d'informations sur l'éditeur de méthodes, reportez-vous au manuel Mode Développement de 4D.

Certaines erreurs ne peuvent être détectées que lorsque vous exécutez la méthode. La fenêtre Erreur de syntaxe est affichée lorsqu'une telle erreur est détectée. Par exemple :

Ici, l'erreur provient du fait que le nom d'une table est passé à la commande Majusc, qui attend une expression de type Texte. Dans cette image, la zone "Détail" est déployée afin d'afficher la dernière erreur et son numéro.
Parfois, il peut arriver que vous n'ayez pas assez de mémoire pour créer un tableau ou un BLOB. Ou bien, lorsque vous cherchez à accéder à un document sur votre disque, ce document peut ne pas exister ou être déjà ouvert par une autre application.


Ces erreurs ne se produisent pas à cause de votre code. Simplement, ce sont des choses qui arrivent ! La plupart d'entre elles sont faciles à identifier à l'aide d'une méthode d'interception d'erreurs (reportez-vous à la description de la commande APPELER SUR ERREUR.)

Pour plus d'informations sur cette fenêtre, reportez-vous à la section Fenêtre d'erreur de syntaxe.

Ce sont généralement les erreurs qui sont les plus difficiles à repérer. Vous devez utiliser le débogueur pour les détecter. Notez qu'à l'exception des fautes de frappe, tous les types d'erreurs indiqués précédemment sont aussi, parfois, des erreurs de logique ou de conception. Voici des exemples :

  • Une erreur de syntaxe peut être retournée si vous essayez d'utiliser une variable qui n'est pas encore initialisée.
  • Une erreur liée à l'environnement peut se produire si vous essayez d'ouvrir un document dont le nom est reçu par une sous-routine qui ne reçoit pas la bonne valeur dans le paramètre. Notez que dans cet exemple, le morceau de code qui ne fonctionne pas n'est pas celui qui est à l'origine du problème.

Les erreurs logiques ou de conception se produisent également dans les situations suivantes :

  • Un enregistrement n'est pas correctement mis à jour parce qu'en appelant STOCKER ENREGISTREMENT, vous avez oublié de tester d'abord si cet enregistrement était ou non verrouillé.
  • Une méthode ne fait pas exactement ce que vous attendiez parce que vous ne testez pas la présence éventuelle d'un paramètre optionnel.

En mode Application, vous pouvez obtenir des erreurs que vous n'avez jamais vues en mode interprété. Voici un exemple :

Ce message vous indique que vous essayez d'accéder à un caractère dont la position se trouve au-delà de la longueur de la chaîne. Pour trouver rapidement l'origine du problème, notez le nom de la méthode et le numéro de la ligne, ouvrez votre base en mode interprété puis allez à la méthode et à la ligne indiquées.

Les erreurs sont chose commune. Il est rare d'écrire une grande quantité de lignes de code sans générer d'erreur. Traiter et corriger les erreurs est tout aussi naturel.

Grâce à son environnement multitâche, 4D vous permet de modifier et d'exécuter rapidement vos méthodes : vous n'avez qu'à passer d'une fenêtre à une autre. De plus, vous découvrirez combien il est simple et rapide de repérer vos erreurs en utilisant le Débogueur.

Un réflexe courant chez les débutants lorsqu'une erreur est détectée est de cliquer sur le bouton Arrêter dans la fenêtre d'erreur de syntaxe, de retourner à l'éditeur de méthodes, et d'essayer de deviner ce qui se passe en regardant le code. Ne faites pas cela ! Vous gagnerez un temps considérable en utilisant toujours le Débogueur.

  • S'il se produit une erreur de syntaxe inattendue, utilisez le Débogueur.
  • S'il se produit une erreur d'environnement, utilisez le Débogueur.
  • S'il se produit tout autre type d'erreur, utilisez le Débogueur.

Dans 99 % des cas, le Débogueur affiche l'information dont vous avez besoin pour comprendre la cause de l'erreur. Vous pouvez alors la corriger.

Astuce : Passez quelques heures à apprendre et expérimenter le Débogueur. Vous gagnerez des journées et des mois dans l'avenir.

La phase de développement représente une autre occasion d'utiliser le Débogueur. Imaginons que vous deviez écrire un algorithme plus complexe que d'habitude. Une fois le code écrit, vous ne pouvez être certain qu'il fonctionne tant que vous ne l'aurez pas testé. Au lieu de passer directement en exécution, vous pouvez d'abord le vérifier en insérant la commmande TRACE au début de votre code. Ensuite, exécutez le code au pas à pas pour contrôler ce qui se passe.

Utilisez le Débogueur.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Débogueur
Nom intl. : Why a Debugger?

 
VOIR AUSSI  

APPELER SUR ERREUR
Débogueur
Fenêtre d'erreur de syntaxe
Liste des points d’arrêt
Points d'arrêt sur commandes
Raccourcis du débogueur

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v11 SQL Release 6)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v12.4)
4D - Langage ( 4D v13.5)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)