Gestion des erreurs en javascript

Je me demandais comment gérer les erreurs dans un script qui est destiné à être utilisé comme un «analyseur». Fondamentalement, j'ai besoin d'un moyen de gérer les erreurs d'analyse.

Puisque le texte que ce script analyse doit être fourni dans le HTML, je suppose que lancer l'erreur dans la console javascript n'est pas une option, n'est-ce pas? L'utilisateur du script ne doit pas être au courant de ce script, il doit juste connaître la syntaxe requise pour un certain attribut HTML afin de modifier la manière dont l'élément se comporte. Pensez-y comme rebond. , La seule différence est que mon analyseur ne génère pas de HTML, de texte, etc., il cache ou montre certains éléments de saisie s'ils répondent aux conditions fournies dans le texte à analyser.

Devrais-je rester avec un simple message d'alerte au navigateur?

L'ajout d'un message d'erreur dans le document (près de l'élément qui contient le texte à analyser) n'est pas vraiment une option, car le point de ce script est de modifier le comportement de certains éléments d'entrée et de ne pas ajouter de texte ou quelque chose comme ça. En outre, il produirait un style incohérent ..

Vous pouvez utiliser try catch like:

<script type="text/javascript"> try { // Code to run [break;] } catch ( e ) { // Code to run if an exception occurs [break;] }[ finally { // Code that is always executed regardless of // an exception occurring }] </script> 

Plus de détails sont disponibles: Javascript

Créez une fonction qui analyserait votre code et le mettrait à l'intérieur tenter: – espérons que cela vous aidera

Je ne comprends pas ce que vous voulez, mais si vous voulez écrire quelque chose sur la console javascript, utilisez console.log("Error!"); J'espère que ceci vous aide.

Pour un très bon exemple, vous pouvez essayer de mettre JSON invalide dans http://jsonlint.com/ . Définir une bordure autour de l'entrée de texte pour être rouge, puis inclure une zone de texte contenant l'emplacement de l'erreur d'analyse est une façon graphique très lisse de dire «quelque chose n'allait pas avec cette entrée, voici ce qui ne va pas avec elle». Cela permet également à JSONLint d'inclure les numéros de ligne, de sorte que quand il dit "erreur sur la ligne x" cela signifie quelque chose; Vous pouvez y aller. Mais cela dépend beaucoup de ce que vos utilisateurs vont être.

Un problème avec les boîtes d'alerte est qu'il a tendance à vraiment aspirer à la copie et qu'il tend à lier le reste de la page. Une alerte en ligne dans le HTML me permettra de parcourir la zone de texte jusqu'à ce que je trouve la ligne offensante, et corrigez-la.

Cela dépend aussi de votre public. Pour certains utilisateurs finaux d'entreprise, la mise en place d'une boîte d'erreur va les frustrer et les obliger à appeler votre ligne téléphonique en disant que votre produit ne fonctionne pas – la fourniture de détails devrait être minimale ", ce n'est pas une X valide . " D'autre part, pour les développeurs, vous voudrez peut-être leur dire tout ce qui est un peu discutable, comme l'a fait JSLint de Crockford.

Votre question semble attendre deux types de réponses:

  1. Que se passe-t-il si votre analyseur ne parvient pas à analyser
  2. Comment montrer l'erreur à votre utilisateur

Pour 1, j'utiliserais le mécanisme try/catch et tout ce qui va dans la catch serait affiché à l'utilisateur (2.) en utilisant un html, comme ajouter après / avant l'entrée, une liste d'erreurs.

Vous pouvez utiliser une boîte d'alerte mais je préférerais ajouter une erreur: <div> au dom qui contient le message d'erreur.

quelque chose comme:

Css:

 #error{ display:none; } 

Html:

 <div id="error"></div> // <- show error here <textarea id="input"></textarea> // <- user inputs the text 

Javascript:

 try { // Code to run } catch ( e ) { // Write the error to your #error-div and display it } 

Éventuellement, vous pouvez enregistrer l'erreur dans la console, quand elle existe.

 if (window.console) console.log('hello world');