Quel est structurée la gestion des exceptions

 ... 
  

L'erreur n'est pas pris, parce que la gestion des exceptions structuré n'est pas encore en vigueur, et l'utilisateur voit le message d'erreur standard. Avant que vous pouvez rattraper l'erreur, vous devez dire ColdFusion pour tenter de rattraper une erreur:

 ... 

ColdFusion CFTRY dit de regarder le bloc de code ci-jointe pour les erreurs, et CFCATCH ColdFusion dit quoi faire si une erreur se produit. CFCATCH type = "Tous" raconte ColdFusion que toute erreur entraîne l'exécution de passer à l'intérieur de ce bloc de code spécifiques CFCATCH. CFCATCH prend un seul attribut type, qui spécifie le type d'erreur qui est pêché. Si vous voulez attraper les erreurs de base de données uniquement, par exemple, vous pouvez utiliser le code suivant:

 ... 

Si vous utilisez ce CFTRY / CFCATCH construire, toutes les erreurs de base de données sont capturés et manipulés par le code dans la paire de balises CFCATCH, et toutes les erreurs nondatabase tombe au prochain niveau dans structurée des exceptions de votre application de traitement cadre. En précisant un type d'exception avancé comme argument de CFCATCH l'attribut type, vous pouvez attraper et traiter les erreurs très spécifiques qui se produisent en dehors des limites de ColdFusion Server. Le point d'avoir ce type d'erreurs nombreuses, c'est que votre gestion structurée des exceptions peuvent granularly répondre à chaque Tapez une façon spécifique. Vous pouvez, par exemple, ont un gestionnaire d'exception que les captures de deux types différents et les traite de deux manières différentes, comme suit:

 ... Code à exécuter goes here ...  Une erreur de base de données s'est produite.  Une erreur s'est produite expression 

L'exemple précédent captures soit une erreur de base de données ou une erreur d'expression et affiche un message différent selon lequel. Si l'erreur n'est pas une base de données ou d'une erreur d'expression, l'erreur n'est pas récupérée et l'utilisateur voit la sortie de message standard. CFCATCH type = "Tous" ne peut pas attraper un type d'erreur. Plus précisément, type = "Tous" les captures d'erreur découlant de l'java.lang.Exception classe Java. type = "Tous" ne constitue pas, toutefois, de repérer des erreurs découlant de java.lang.Throwable. Pour attraper ces erreurs, vous devez définir un CFCATCH spéciales, comme suit:

 ...  ... 

Vous rencontrez rarement ce type, car aucune des caractéristiques ColdFusion standard jeter ce type d'erreur. Vous mai-être surpris d'apprendre que vous ne pouvez pas attraper certaines erreurs du tout. Le code suivant, par exemple, renvoie une erreur quelle que soit la CFTRY entourant le mauvais code:

 Une erreur est survenue! 

Le CFSET n'a pas de contenu, de sorte ColdFusion renvoie une erreur indiquant, Invalide CFML Construct Trouvé sur la ligne 9 à la colonne 7. Ce résultat mai sembler étrange, cependant, parce que vous avez un CFTRY et CFCATCH type = "Tout". Le problème ici est que la mauvaise CFSET créé une erreur compiletime, qui ne peuvent être capturées avec CFCATCH. CFCATCH peut attraper qu'une erreur d'exécution, qui survient pendant l'exécution du modèle. Dans le cas de l'extrait précédent, ColdFusion n'a pas pu analyser avec succès et de compiler la page, de sorte que le traitement des exceptions n'a pas pris effet. Si vous deviez CFINCLUDE une page avec une erreur de compilation, la page d'appel pourrait prendre un Template type d'erreur. Cela est rare, et vous devez veiller à ne pas s'appuyer sur la gestion des exceptions pour attraper les erreurs de compilation. La réponse courte est rien! Vous pouvez gérer une erreur quelque manière que bon vous semble, de l'ignorer complètement à l'examiner dans leurs moindres détails, au changement d'itinéraire à l'utilisateur d'une solution de rechange modèle. Vous n'avez habituellement l'une des deux choses, cependant. Soit rediriger l'utilisateur vers une page différente ou afficher un user-friendly message lui disant ce qui s'est passé. Vous pouvez suivre l'une des deux philosophies en redirigeant l'utilisateur. Le premier est d'avoir une page d'erreur spécifique pour chaque erreur peut se produire et rediriger l'utilisateur vers cette page en particulier, comme dans l'exemple suivant:

 ... 

L'inconvénient de cette approche est que vous ne pouvez pas dire exactement ce qui s'est passé et pourquoi. Une meilleure option est de rediriger l'utilisateur vers une page d'erreur, mais passer le message d'erreur dans l'URL, comme suit:

 ... 

Ce code passe un message d'erreur détaillé dans un paramètre d'URL à la page d'erreur. Une autre option est d'afficher directement un certain type de message plutôt que de rediriger l'internaute, comme suit:

 ...  Une erreur de base de données s'est produite. 

Vous mai remarquerez que le code précédent ajoute une CFABORT après le message, vous ne voulez pas la page erronés pour continuer l'exécution après une erreur se produit. Une dernière option qui est rarement utilisée consiste à ignorer l'erreur. Ceci est habituellement appropriée que si vous attendez une erreur de se produire, mais il n'a pas d'importance pour vous de savoir si l'erreur se produise ou non, comme le montre le code suivant:

 ... 

Si vous ignorez une erreur, en ajoutant un commentaire au bloc CFCATCH est généralement une bonne idée de sorte que vous n'êtes pas comprendre si vous revenez en arrière et lire votre code plus tard. Et être conscient que fermer les yeux une erreur peut se révéler dangereux, parce que vous fin mai jusqu'à la capture par inadvertance une erreur plus grave que celle que vous attendiez. Au moins la journalisation de l'erreur en utilisant CFLOG mai être une bonne idée, même si vous prévoyez de l'ignorer, comme dans l'exemple suivant:

 ... 

De cette façon, vous pouvez consulter le message d'erreur spécifique dans le fichier log.

un article présenté par M. José Carreto


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Que la gestion structurée exception" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 229 users browsing the articles directory