Implémentation d'une erreur de stratégie et de gestion des exceptionsImplémentation d'une erreur de stratégie et de gestion des exceptions
Problème Vous voulez mettre en œuvre une erreur propre et stratégie de gestion des exceptions dans vos applications, de les faire courir plus en douceur. Théorie Bien sûr, vous diront que d'une erreur est une boîte de dialogue et l'autre est généré dans la console JavaScript. Le fait qu'un navigateur utilise une boîte de dialogue pour afficher une erreur et l'autre ne sait pas est un problème de navigateur, pas un problème d'erreur. Une façon concise de classer les deux erreurs à-dire que l'un représente une page HTML initialisation erreur et l'autre représente une page HTML exécution erreur. Lorsqu'elles mettent en œuvre une stratégie d'erreur, envisagez la mise en œuvre technique. Au niveau technique, lorsque le premier caractère est traité, le runtime JavaScript est exécuté et peut générer une erreur. Mais si une erreur survient trois personnages dans le traitement, vous êtes à peu près impuissant à faire quoi que ce soit. Jusqu'à ce que la page HTML a été entièrement traitée, vous ne devez pas activer la gestion des erreurs, parce que la gestion des erreurs cadre ne puisse être correctement initialisé. Et si une erreur ne se produise à cet endroit, votre gestionnaire d'erreurs cadre pourrait aller à pied la moitié à la bite. Ayant un caractère incomplet du cadre essayez de traiter une erreur va juste créer une confusion, pas d'aide. Votre objectif devrait être d'initialiser et de préparer le cadre de la gestion des erreurs lorsque la page HTML a été complètement transformé. Pour savoir quand il faut initialiser le cadre de la gestion des erreurs, vous avez besoin de savoir quand se termine l'initialisation et la page HTML HTML runtime page commence. Techniquement, HTML initialisation de la page commence lorsque le premier caractère de la page HTML est générée. Et techniquement, HTML runtime page commence lorsque l'événement window.onload est appelée. L'événement window.onload est appelée après la page HTML a été traitée, y compris les châssis et les images, et c'est le premier morceau de code JavaScript que lors de l'exécution peut s'attendre à la page HTML pour être complète. Un exemple d'implémentation de l'événement window.onload pourrait être comme suit:
Dans cet exemple, window.onload est près du haut de la page HTML, mais la fonction pourrait être mis n'importe où sur la page. Dans la mise en œuvre de window.onload, la méthode window.onerror est affecté comme un gestionnaire mondial catchall erreur. Du point de vue de script, il est le dernier point à partir duquel vous pouvez configurer le navigateur avant que le navigateur commence son exécution d'exécution de la page HTML. Le gestionnaire window.onerror reçoit trois paramètres: msg, un fichier, et l'emplacement. Ces trois paramètres représentent le message, le fichier et l'emplacement dans le fichier, respectivement. Au sein de l'exécution du gestionnaire window.onerror, le gestionnaire pourrait réparer et réessayer, générer un journal, ou faire tout ce qui est souhaité. La mise en œuvre window.onerror exemple ne renvoie pas une valeur vraie ou fausse, d'où l'erreur se propage dans le navigateur. Une valeur fausse propager et d'afficher l'erreur, alors qu'une véritable valeur ne fera pas le navigateur au courant de l'erreur. La mise en œuvre exemple contient un problème, mais c'est pas avec le gestionnaire d'erreur. Le problème est avec la cession de la fonction window.onload. Comme le code est écrit, il n'y a qu'une seule fonction d'implémentation pour window.onload, et il initialise la fonction window.onerror. Pour une application Ajax de toute la complexité, il n'est pas possible d'assigner une méthode window.onload unique, car ce serait être monopolisant la méthode. Solution Cette solution implique la création d'un délégué JavaScript, comme l'illustre le code source suivant. Source: / website / ROOT / ajaxrecipes / javascript / functionsareobjects.html Dans la mise en œuvre onload modification, la fonction ops.delegate est utilisé pour créer un délégué. Pour le moment, pensez à un délégué comme un moyen d'avoir un résultat unique méthode d'appel à plusieurs méthodes d'être appelé. (Vous trouverez plus de détails sur les délégués à la recette 2-17.) La mise en œuvre de ops.delegate permettra de tester si une fonction est déjà attribué à window.onload. Si une fonction est attribuée, alors la fonction existant est converti à un mode délégué, et la nouvelle fonction est associée avec le délégué. Puis, quand le navigateur appelle window.onload, elle fera appel à la fois la fonction d'origine et la nouvelle fonction. En théorie, un nombre infini de fonctions peut être associée à un délégué. La chose importante à retenir est que les fonctions multiples peuvent être associés à une seule propriété, ce qui est requis pour la méthode window.onload. Les tests de code suivant l'erreur routine de gestion: testsToRun var = (throw_exception: function () (throw new Error ( "ceci est une erreur");)); Lorsque la fonction throw_exception est appelée, une exception est générée par l'instanciation de l'objet Error et lançant puis en l'utilisant le jet de mots clés. En théorie, vous pouvez jeter tout objet, même celui qui ressemble à erreur. Bien sûr, d'erreur en utilisant de cette manière est le choix le plus efficaces, ce qui en substance est la base de votre cadre de gestion des erreurs. Vous avez besoin de quelque chose de capturer une erreur, et vous avez besoin de jeter une erreur. Comment êtes-vous capturer et traiter l'erreur est spécifique au contexte, ainsi vous montrer quelque chose de moi ou un autre développeur a mis en œuvre dans une autre application ne va pas vous aider ici. Une autre façon de capter une erreur se fait par un gestionnaire d'exception, comme suit: function generate () (throw new Error ();) function CatchAll () (try (generate ();) catch (e) (/ / Do something with error throw e;)) Dans cet exemple, deux fonctions sont: Produire et Catchall. Générer est utilisé pour générer une exception, et CatchAll est utilisé pour capturer l'exception. En JavaScript, vous pouvez capturer une exception en utilisant l'essayer et attraper les mots clés, qui capturent toutes les erreurs et exceptions qui interviennent lorsque le code dans le bloc try est exécuté. Quand une exception est générée, le code dans le bloc catch est exécuté. Dans l'exemple, l'erreur est générée par Produire et interceptée par le bloc de capture, qui lance alors l'erreur. Lorsque l'erreur est jeté de nouveau, l'exception sera capturée dans la méthode window.onload. Le essayer de l'attraper bloc est très utile, car toutes les erreurs et exceptions peuvent être pris sans le navigateur ait le plus sage. Mais disposer d'un mécanisme de fourre-tout peuvent faire du débogage JavaScript plus compliquée, car les erreurs qui se produisent sont traitées sans avoir le développeur ni connu. Vous pourriez être tenté d'utiliser un bloc try et catch comme une technique de programmation générale, mais ce serait un mauvais idée. Une erreur qui est levée est une exception et une exception est quelque chose qui n'aurait jamais dû arriver et elle est imprévisible. Une exception ne devrait jamais arriver, alors une erreur peut arriver. La meilleure façon d'illustrer la différence entre et à l'erreur et une exception est l'exemple suivant, qui montre comment une exception peut être utilisé pour capturer une erreur. Note Cet exemple aurait pu écrire de manière plus succincte en utilisant d'autres mots clés, mais le point ici est de montrer simplement la différence entre l'utilisation d'une décision de tester une variable non définie et en utilisant une exception qui s'exécute si la variable se trouve être indéfini. func var; try (func ();) catch (e) (func = Default; func ();) L'exemple illustre comment exception d'un gestionnaire d'exception (essayer de l'attraper mots-clés) peut être utilisé pour intercepter une exception si la variable fonction n'est pas affecté à une méthode. Fonctions d'appel va générer une exception et de déclencher le code dans le bloc catch. Dans le bloc de capture de l'exception, la fonction variable est attribué une fonction par défaut qui fonctionne et est appelée. Utilisant un bloc exception de cette manière est incorrecte, car le code comme il est écrit s'attend à ce que fonctions pourraient ne pas être affecté. Si l'on s'attend à des fonctions n'étant pas affecté, puis le code doit être écrit pour refléter cela. Une meilleure façon d'écrire le même code est comme suit: func var; if (typeof (func)! = "function") (func = Default;) func (); Dans l'exemple de réécriture de code, le test des contrôles FUNC pour s'assurer que les fonctions de référencement est une fonction. Si les fonctions ne référence pas une fonction, puis func est attribué par défaut la fonction par défaut. Puis, quand fonction est appelée, aucune exception ne sera généré. Lorsque vous écrivez du code, des erreurs et des exceptions seront générés, et vous aurez besoin d'une stratégie pour traiter avec eux. Gardez les points suivants à l'esprit lorsque vous développez une erreur et une stratégie d'exception: • Chargement et traitement d'une page HTML comporte deux phases: initialisation de la page HTML et HTML exécution de page. • Au cours de l'initialisation d'une page HTML, ne pas activer votre erreur et de la stratégie faisant exception pourrait avoir des résultats imprévisibles. • initialiser votre erreur et la stratégie de gestion des exceptions dans la méthode window.onload. • Ne présumez pas que vous faites affaire avec un seul morceau de code qui doit être appelée par la méthode window.onload. Utilisez un délégué pour permettre de multiples fonctions à appeler. • Les erreurs et exceptions ne sont pas la même chose. Les erreurs peuvent être anticipés et traités, mais les exceptions ne peuvent pas. • Vous pouvez définir un gestionnaire d'exception mondiale en mettant en œuvre la méthode window.error. • Pour gérer les exceptions locales, vous pouvez essayer d'utiliser un bloc catch. un article présenté par Sonja Lande Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «Mettre en œuvre une erreur et Exception Handling stratégie" 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: 336 users browsing the articles directory |
|
|