-
    Techniques et conseils

Note: L'ensemble des "Tips of the Week" de l'éditeur OmniPilot sont régulièrement traduits chaque semaine. Vous les retrouvez ci-après

LISTE DES TUTORIAUX

Formatage de nombres et calculs FileMaker Pro sous Lasso

Passer facilement de FileMaker Pro CDML à Lasso Professional 8

Outil de Maintenance MySQL

Indicateur de progression - Progress bar

Uploads de fichiers sous Lasso Professional 8

Utilisation des arrays pour la création d'inlines dynamiques

Balises de gestion du Cache

Méthodes d'appel des balises

Encryption de données

Notions de Sessions

Gestion des erreurs

Pages d'erreur customisées

Variables globales

Optimisations de MySQL

Symboles d'assignation mathématiques

Expression régulières (Nettoyage du texte)

Expressions régulières (Rechercher/remplacer)

Expressions régulières (principes de base)

Optimisez votre code HTML en utilisant les balises [Loop] et [Iterate]

Utilisation des boucles (Loops)

Utilisation de la balise [Action_Params]

Techniques de commentaires


     
Blueworld, Windows Server 2003, Windows XP, RedHat, Linux, Mac OS X, MACOS, Apache, MySQL, FIlemaker Pro

Edité par OmniPilot Software, Lasso Professional fonctionne sous Windows 2000/2003/XP et Linux RedHat et Apache Server - Il s'intègre parfaitement à MySQL™ et FileMaker Pro™ ainsi que toutes autres bases de données
     




Déposez votre nom de domaine avec ELIDEE

Sujet: Gestion d'erreur

Résumé:
Cet article discute des moyens d'utiliser le système de gestion des erreurs intégrées de Lasso.

Contenu:
Lasso Professional 7 inclut un système de gestion d'erreur qui peut être utilisé pour supprimer le système d'alerte intégré. Le système de gestion des erreurs peut être facilement utilisé avec vos propres messages d'erreurs et vous permet de gérer vos propres codes et messages et créer ainsi votre propre système de reporting et de gesion des erreurs. Cet article donne quelques conseils en ce sens.


Supprimer les messages d'erreur

Lasso rapporte deux types d'erreurs. Les erreurs de syntaxe sont rapportés puisque Lasso parse et compile toutes les pages Lasso. Une erreur de syntaxe empêche Lasso d'interpréter correctement une page et doit être corrigée pour que Lasso puisse procéder la page. La plupart des syntaxes d'erreur peuvent être rencontrées dans le développement de vos pages.

Lasso rapporte également des erreurs de runtime. Ce sont des erreurs logiques lorsqu'une page correctement formatée est procédée. Une erreur de runtime peut arriver par exemple lorsque vous tentez d'accéder une position excedant la taille de l'array ou le passage d'une valeur d'un type erroné à une balise. Ces erreurs sont rapportées de la même manières que les erreurs de syntaxe, mais cela peut dépendre des données procédées.

Lasso rapporte les erreurs en stoppant le process de la page et en retournant une page d'erreur comprenant le message. Le formatage actuel de ce message d'erreur dépend de vos préférences de reporting des erreurs. Veuillez vous reporter à l'article précédent Pages d'erreur customisées pour plus d'information à ce sujet.

Les balises Lasso [Protect] ... [/Protect] permettent de supprimer tout message d'erreur. Si le code situé entre [Protect] ... [/Protect] devait renvoyer une erreur, cette erreur ne sera pas affiché au visiteur du site. Ceci vous permet de décider si les visiteurs du site doivent être informés des erreurs contenues dans le code ou pas.

Il est souvent possible dans votre code de l'écrire de façon à ce que si une portion de ce code provoque une erreur, une valeur par défaut soit utilisée et le reste de la page peut donc continuer à s'exécuter. Par exemple, dans le code suivant, une variable est paramétrée avec une valeur par défaut, puis le code qui devrait renvoyer une erreur est alors exécuter entre les balises [Protect] ... [/Protect] et finalement la valeur de la variable est affichée. Si une erreur est insérée alors la valeur par défaut de la variable sera utilisée. Autrement, la valeur paramétrée entre les balises [Protect] ... [/Protect] sera utilisée.

<?LassoScript
  var: 'maVariable' = 'Valeur par défaut';
  Protect;
    ... Code précisant la valeur de maVariable et qui pourrait générer une erreur ...
  /Protect;
  Encode_HTML: $maVariable;
>

En utilisant cette technique dans des endroits appropriés sur vos sites vous pourrez améliorer son fonctionnement en permettant son fonctionnement, même avec des valeurs par défaut au lieu de l'affichage d'erreurs.


Gestion des erreurs

Les balises [Protect] ... [/Protect] suppriment tout message d'erreur, mais si une erreur se produit vous souhaitez généralement en être informé de manière à ce que vous puissiez la corriger pour faire fonctionner votre site correctement. Les balises [Handle] ... [/Handle] peuvent être utilisées pour manipuler une erreur. Lorsque une erreur se produit dans une balise conteneur [Protect] ... [/Protect] Lasso recherche alors à l'intérieur tout code qui serait contenu entre [Handle] ... [/Handle].

La balise ouvrante [Handle] requiert une expression conditionnelle qui détermine si le code du conteneur doit être exécuté ou pas. Son usage est le même qui s'il s'agissait d'un [If] ...[/If] à l'exception du fait que le code contenu dans [Handle] ... [/Handle] est toujours le dernier exécuté dans le bloc courant [Protect] ... [/Protect]. L'expression conditionnelle peut vérifier l'existence d'un code d'erreur spécifique [Handle: (Error_Code == (Error_AddError: -ErrorCode))] ... [/Handle], peut vérifier n'importe quel code d'erreur [Handle: (Error_Code != (Error_NoError: -ErrorCode))] ... [/Handle], peut vérifier par rapport à une variable de page [Handle: ($myError != 0)] ... [/Handle], ou peut être paramétré à "True" pour vous assurer que le code entre les balises handle est toujours procédé [Handle: True] ... [/Handle].

Par exemple, le code suivant peut être amélioré à l'aide d'un bloc Handle à l'intérieur du Protect. Ci-après, si une erreur se produit dans le [Protect] ... [/Protect] alors un email est envoyé à l'administrateur et la variable est paramétrée à une valeur spéciale indiquant quelle erreur est intervenue.

<?LassoScript
  var: 'maVariable' = 'Valeur par défaut';
  Protect;
    ... Code précisant la valeur de maVariable et qui pourrait générer une erreur ...
    Handle: (Error_Code != (Error_NoError: -ErrorCode));
      Email_Send: -To='admin@example.com', ...;
      Var: 'maVariable' = 'Error Value';
    /Handle;
  /Protect;
  Encode_HTML: $maVariable;
>

Note: Les balises [Handle] ... [/Handle] comprennent un code toujours exécuté à la fin dans un bloc Protect. Elles sont exécutées dans l'ordre dans lequel elles apparaissent mais toujours après l'autre code compris dans le bloc. Les balises Handle sont exécutées même si aucune erreur n'est detectée dans le bloc Protect. La condition comprise dans la balise Handle ouvrante détermine si le code qui suit doit ou non être exécuté.

Si les balises Handle sont utilisées dans une page Lasso, mais pas dans un bloc [Protect] ... [/Protect] alors le code inclut sera exécuté après tout l'autre code ou si une erreur a été renvoyée sur la page. Les balises Handle dans des Includes s'exécuterons après que le code de ces includes ait été exécuté ou si une erreur est renvoyée à cette page incluse.


Utiliser Protect, Handle et Fail

Les exemples ci-dessus vous ont montré comment [Protect] ... [/Protect] et [Handle] ... [/Handle] peuvent être utilisées pour capter et afficher un message d'erreur customisé. Les balises [Fail] et [Fail_If] peuvent être utilisées pour générer des erreurs customisées. Ces erreurs peuvent être captées en utilisant [Protect] ... [/Protect] et manipulées en utilisant des blocs Handle appropriés.

Une erreur customisée peut être générée en appelant la balise [Fail] avec un code d'erreur et un message d'erreur customisé. -1 est souvent utilisé comme code d'erreur générique ou n'importe quel code positif peut être utilisé. 0 signifie qu'aucune erreur n'est intervenue. Si [Fail] est appelée sur une page alors la page d'erreur intégrée de Lasso sera appelée avec votre propre code et message d'erreur.

[Fail: 1, 'Une erreur personnalisée est intervenue']

[Fail_If] fonctionne de la même manière, mais le premier paramètre est une condition qui détermine dans quel cas le code et le message d'erreur doit être rapportés ou pas. Par exemple, la balise [Fail_If] suivante rapportera une erreur uniquement si la variable spécifiée est vide.

[Fail_If: ($maVariable == ''), 1, 'Une erreur personnalisée est intervenue']

La balise [Fail] peut être utilisé avec [Protect] ... [/Protect] pour arrêter immédiatement le process à l'intérieur d'un block Protect. Après que [Fail] soit appelée toutes les balises [Handle] ... [/Handle] à l'intérieur du bloc Protect seront exécutées et leur résultat renvoyé.

Par exemple, dans le code suivant les permissions de l'utilisateur courant sont vérifiées et une variable myPermission est paramétrée à "true" ou "false". Si la variable est "false" alors un [Fail_If] paramètre un code d'erreur et un message approprié. Ceci est capté par les balises [Protect] ... [/Protect] et les balises [Handle] ... [/Handle] à l'intérieur du bloc Protect qui sont exécutées une à une. Le bloc [Handle] ... [/Handle] va être paramétré à "True", le code à l'intérieur va alors demander l'authentification de l'utilisateur.

[Protect]
  ... Code vérifiant les permissions et paramétrant la variable $myPermission à true ou false ...
  [Fail_If: ($myPermission == false), 1, 'Aucune Permission']
  ... Code qui doit être exécuté si $myPermission est à true ...
  [Handle: (Error_Code == 1(]
    ... Demande l'authentification à l'utilisateur ...
  [/Handle]
[/Protect]

L'exemple ci-dessus pourrait être écrit en utilisant des conditions habituelles, mais il arrive qu'avoir plusieurs tests conditionnels imbriqués pour refléter toutes les possibilités se révèle délicat à gérer. En revanche, l'utilisation de [Protect] ... [/Protect] et de [Fail] avec une série de différents codes peut rendre le code plus simple à lire et à maintenir.

L'utilisation de la gestion des erreurs dans ce sens requiert une méthode quelque peu différente de celle utilisée de façon habituel par les développeurs sous Lasso. Il est instructif de consulter ces exemples ainsi que ceux du manuel Language Guide et LDML Reference et de réaliser vos propres essais de code. Vous trouverez certainement plusieurs situations sur vos sites et applications où l'utilisation de ces techniques rendront votre code plus simple et plus robuste.


Plus d'informations

Plus d'informations peuvent être trouvées sur ce sujet dans LDML Reference ainsi que dans le manuel Lasso Language Guide.

Produit:    Lasso Professional
Plateformes:    Mac OS X, Windows 2000, Windows XP, Windows 2003, Red Hat Linux
Versions:    6.x, 7.x
Auteur:    Fletcher Sandbeck - OmniPilot


     
Retour accueil
Lasso Studio
Lasso Professional
Communiqués Presse
Tutoriaux
Lasso & Filemaker
Evaluation gratuite
Hébergement Lasso/MySQL
Revendeurs
Historique logiciel
Tarifs - Commander
Nous contacter
     

Notre numéro de téléphone : +33 5 57 22 89 35

Hébergement mutualisé Lasso




Hébergement et location de baies de serveurs et Transit IP par ELIDEE


-  Accueil  -  Développer avec Lasso Studio  -  Déployer avec Lasso Professional  --
Administration du site webmaster@elidee.com | Copyright 2004-2010, Elidée SARL. Tous droits réservés
Toutes les marques citées sont déposées par leur propriétaire respectif