La loi Murphy dit que tout ce qui peut mal tourner finit par mal tourner. Camp;rsquoest un peu trop gratifiant dans le monde de la programmation. créez une application, des bogues et damp;rsquoautres problèmes peuvent survenir. Les erreurs en javascript sont lamp;rsquoun de ces problèmes courants! Le succès damp;rsquoun produit logiciel dépend de la capacité de son créateur à résoudre ces problèmes avant de nuire à lamp;rsquoutilisateur. Dans tous les langages de programmation, JavaScript est connu pour sa conception moyenne de gestion des erreurs. créez une application Javascript, il y a de fortes chances quamp;rsquoune erreur de type de données se produise tôt ou tard. Dans le cas contraire, lamp;rsquoopérateur non défini peut éventuellement être remplacé par un opérateur zéro égal ou par un opérateur double égal (=) au lieu de trois opérateurs (=).
Seuls les humains font des erreurs. Camp;rsquoest pourquoi nous montrerons toutes les connaissances nécessaires pour gérer les erreurs en javascript. Cet article guidera sur les erreurs javascript de base et expliquera les types damp;rsquoerreurs que pourriez rencontrer. Vous apprendrez ensuite à reconnaître et à corriger ces erreurs. Il existe également des conseils pour aider à gérer efficacement les erreurs dans votre environnement de production. amp;rsquoennuis, on y va! Quamp;rsquoest ce quamp;rsquoune erreur javascript? Une erreur de programmation est une condition qui ne permet pas au programme de fonctionner correctement. Cela se produit lorsque le programme ne sait pas comment gérer le travail en cours, par exemple lorsque essayez damp;rsquoouvrir un fichier inexistant, ou lorsque atteignez un paramètre API Web sans connexion réseau.
Ces conditions peuvent causer des erreurs de programme à lamp;rsquoutilisateur, ce qui signifie que lamp;rsquoutilisateur ne sait pas comment continuer. Le programme recueille le plus de messages damp;rsquoerreur possible et signale quamp;rsquoil ne peut pas continuer. La loi Murphy dit que tout ce qui peut mal tourner tourne mal, ce qui est trop approprié
Et le message, puis la liste des méthodes appelées. Chaque appel à la méthode indique lamp;emplacement du code source et la ligne qui lamp;rsquoappelle. Vous pouvez utiliser ces données pour naviguer dans la base de code et identifier la partie du Code qui a causé lamp;rsquoerreur. Cette liste de méthodes est empilée. Affiche où lamp;rsquoexception a été générée pour la première fois et comment elle samp;rsquoest propagée en appelant la méthode stack. La capture pour lamp;rsquoimplémentation damp;rsquoexception ne lui permettra pas de se propager dans la pile et damp;rsquoécraser lamp;rsquoexception du programme. Cependant, dans certains cas, ne voudrez peut être pas détecter une erreur irréversible pour arrêter délibérément le programme.
Erreurs et exceptions la plupart des gens pensent généralement que les erreurs et les exceptions sont la même chose. Il convient toutefois de noter les différences subtiles mais fondamentales entre elles. Lamp;rsquoexception est un objet damp;rsquoerreur généré. Pour mieux comprendre cela, prenons un exemple simple. Voici comment définir lamp;rsquoerreur en javascript: Const errortypeerror = typeerror (
Lancer une erreur de type (
Quelques erreurs dans JavaScript et apprendrez quand et pourquoi elles se sont produites.
Erreur de plage une erreur de plage est générée lorsque la variable est définie à une valeur qui dépasse la plage admissible. Cela se produit généralement lorsque passez une valeur comme argument à une fonction et quamp;rsquoune valeur donnée namp;rsquoest pas dans la plage des paramètres de la fonction. Il est parfois difficile de résoudre ce problème lors de lamp;rsquoutilisation damp;rsquoune bibliothèque tierce dont la documentation est incomplète, car devez connaître la plage de valeurs possibles pour les paramètres afin de transférer les valeurs correctes. Voici quelques scénarios courants où une erreur de plage se produit:
Essayez de créer un tableau de longueur invalide en utilisant le constructeur de tableau. Passez des valeurs invalides à des méthodes numériques telles que toexponential (), toprecision (), tofixed (), et ainsi de suite. Passe une valeur illégale à une fonction de chaîne, comme normalize (). Une erreur de référence se produit lorsquamp;rsquoil y a un problème avec la référence damp;rsquoune variable dans le Code. Vous avez peut être oublié de définir une valeur pour une variable avant de lamp;rsquoutiliser, ou pourriez essayer damp;rsquoutiliser une variable inaccessible dans votre code. En tout état de cause, lamp;rsquoanalyse de la pile fournit suffisamment damp; pour trouver et corriger les références des variables erronées.
Certaines des causes courantes damp;rsquoerreur de référence sont des erreurs damp;rsquoentrée dans le nom de la variable. Essayez damp;rsquoaccéder à une variable dont la portée du bloc dépasse leur portée respective. Avant de charger, faites référence à une variable globale dans une bibliothèque externe (par exemple, $dans jquery). Erreurs de syntaxe ces erreurs sont parmi les plus faciles à corriger car elles indiquent une erreur dans la syntaxe du Code. Parce que JavaScript est un langage de script interprété et non compilé, ces scripts sont générés lorsque lamp;rsquoapplication exécute un script contenant des erreurs. Pour la langue de compilation, ces erreurs
De la méthode. Le diagnostic de ces erreurs est généralement facile, car les arguments en faveur damp;rsquoun examen des malformations suffisent. Erreur damp;rsquoévaluation une erreur damp;rsquoévaluation se produit lorsquamp;rsquoune erreur se produit lors damp;rsquoun appel de fonction eval (). Eval () est utilisé pour exécuter le code JavaScript stocké dans la chaîne. Cependant, eval () namp;rsquoest pas encouragé en raison de problèmes de sécurité et la spécification ecmascript actuelle ne génère plus la classe evalererror, de sorte que ce type damp;rsquoerreur namp;rsquoexiste que pour maintenir la compatibilité avec les anciennes versions de JavaScript. Cette erreur peut être rencontrée si utilisez une version antérieure de JavaScript. En tout état de cause, il est préférable de vérifier le Code exécuté dans lamp;rsquoappel de fonction eval () pour toute exception. Créer un type damp;rsquoerreur personnalisé bien que JavaScript fournisse une liste de classes de type damp;rsquoerreur pour la plupart des cas, pouvez toujours créer un nouveau type damp;rsquoerreur si la liste ne répond pas à vos exigences. La base de cette flexibilité est que JavaScript permet de démarrer namp;rsquoimporte quoi avec la commande Throw. Par conséquent, techniquement, ces énoncés sont tout à fait légitimes: lancer 8 lancer « une erreur samp;rsquoest produite », mais lamp;rsquoémission damp;rsquoun type de métadonnées de base ne fournit pas de détails sur lamp;rsquoerreur, comme le type, le nom ou la trace qui accompagne la pile. Pour résoudre ce problème et normaliser le traitement des erreurs, des classes damp;rsquoerreurs sont fournies. Le type de métadonnées de base namp;rsquoest pas non plus recommandé lors de la génération damp;rsquoexceptions. Vous pouvez étendre les classes damp;rsquoerreurs pour créer vos propres classes damp;rsquoerreurs personnalisées. Voici un exemple de base de la façon de le faire: class validationerror étend lamp;rsquoerreur {Constructor (message) {super (message) this.name =
Erreurs (
Erreur lors de la définition de la fonction. La solution pour cette erreur est la même: Assurez que la variable est correctement initialisée et quamp;rsquoelle namp;rsquoest pas incertaine lors de lamp;rsquoaccès à la propriété ou à la méthode. Typeerror: NULL namp;rsquoest pas un objet, ce qui est similaire à lamp;rsquoerreur précédente. Il se produit sur Safari et la seule différence entre les deux erreurs est que cette erreur est générée lorsque lamp;rsquoobjet auquel la propriété ou la méthode accède est nul et non non défini. Vous pouvez le lire en exécutant le code suivant: var func = null func. Call () Voici la sortie que recevrez: Exemple damp;rsquoerreur de type pour une fonction vide. Parce que NULL est une valeur explicitement définie à une variable, pas une valeur automatiquement assignée par JavaScript. Cette erreur ne se produit que si essayez même damp;rsquoaccéder à une variable définie à null. Par conséquent, devez vérifier le Code et la logique que avez écrite correctement. Typeerror: impossible de lire la propriété amp;lsquolengthamp;rsquo cette erreur se produit dans Chrome lorsque essayez de lire la longueur damp;rsquoun objet nul ou non défini. La cause de ce problème est similaire à celle des problèmes précédents, mais se produit souvent lors de la gestion des listes Il convient donc damp;rsquoy faire une référence particulière. Voici comment reproduire le problème: Un exemple damp;rsquoerreur de type pour un objet namp;rsquoest pas défini. Cependant, dans une version plus récente de chrome, cette erreur a été signalée comme une erreur de type non saisie: impossible de lire une propriété non définie. Voici à quoi il ressemble maintenant: Un exemple damp;rsquoerreur de type pour un objet qui namp;rsquoest pas défini dans la nouvelle version de chrome. Encore une fois, la solution consiste à samp;rsquoassurer que lamp;rsquoobjet auquel essayez damp;rsquoaccéder existe et namp;rsquoest pas défini à null. Typeerror: Undefined namp;rsquoest pas une fonction qui se produit lorsque essayez damp;rsquoappeler une méthode qui namp;rsquoexiste pas ou qui existe dans le script mais qui ne peut pas être référencée dans le contexte de lamp;rsquoappel. Cette erreur se produit généralement
Pour les variables constantes, obtiendrez les résultats suivants: Exemple damp;rsquoerreur de type attribué à un objet constant. Bien que cela semble facile à résoudre maintenant, imaginez des centaines damp;rsquoénoncés de variables comme celui ci, dont lamp;rsquoun est défini par erreur comme Const au lieu de let! Contrairement à damp;rsquoautres langages de script comme PHP, il y a peu de différences entre les styles de déclaration des constantes et des variables en javascript. Par conséquent, lorsque rencontrez cette erreur, il est recommandé de vérifier damp;rsquoabord votre déclaration. Cette erreur peut également se produire si oubliez que la référence ci dessus est constante et que lamp;rsquoutilisez comme variable. Cela indique que la logique de la demande est négligente ou défectueuse. Assurez de vérifier lorsque essayez de corriger le problème. 10. (inconnu): erreur de script une erreur de script se produit lorsquamp;rsquoun script tiers envoie une erreur au navigateur. Cette erreur est suivie (inconnue) parce que le script tiers appartient à un domaine autre que lamp;rsquoapplication. Le navigateur cache des détails supplémentaires pour empêcher que des informations sensibles ne soient échappées des scripts tiers. Cette erreur ne peut être résolue sans tous les détails. Voici ce que pouvez faire pour obtenir plus damp; sur lamp;rsquoerreur: ajouter la propriété crossorin à la balise script. Définissez le bon en tête damp;rsquoorigine damp;rsquoautorisation de contrôle damp;rsquoaccès sur le serveur qui héberge le script. [facultatif] namp;rsquoavez pas accès au serveur qui héberge le script, envisagez damp;rsquoutiliser un proxy pour transmettre votre demande au serveur et retourner au client avec lamp;rsquoen tête correct. Une fois que avez accès aux détails de lamp;rsquoerreur, pouvez configurer le dépannage qui peut affecter les bibliothèques ou les réseaux tiers. Comment identifier et prévenir les erreurs javascript bien que les erreurs discutées ci dessus soient les plus courantes et les plus courantes dans Javascript, rencontrerez quelques exemples
Ils ne suffiront jamais. Il est essentiel de comprendre comment détecter et prévenir tout type damp;rsquoerreur dans une application JavaScript pendant le développement. Voici comment gérer les erreurs en javascript. La façon la plus élémentaire de gérer les erreurs générées manuellement ou à lamp;rsquoexécution est de les saisir. Comme dans la plupart des autres langues, javascript fournit de nombreux mots clés pour traiter les erreurs. Avant de configurer la gestion des erreurs dans une application Javascript, devez en savoir plus sur elles. Le premier et le plus basique mot clé de la collection Throw est Throw. De toute évidence, le mot clé Throw est utilisé pour générer des erreurs afin de créer manuellement des exceptions au moment de lamp;rsquoexécution du JavaScript. Nous en avons discuté plus tôt dans et voici la nature du sens de ce mot clé: Vous pouvez lancer namp;rsquoimporte quoi, y compris des nombres, des chaînes et des objets damp;rsquoerreur. Cependant, il namp;rsquoest pas recommandé de générer des types de données de base tels que des chaînes et des nombres parce quamp;rsquoils ne contiennent pas damp; de débogage sur les erreurs. Exemple: le mot clé damp;rsquoessai Throw typeerror (
Ion) {if (exception instance of typeerror) { do something}}}} catch {if (exception instance of rangeerror) { do something}}}} if Lamp;rsquoinstruction switch case dans un autre bloc ou un seul bloc de capture gère toutes les conditions damp;rsquoerreur possibles. Il ressemble à ceci: try { Business Logic Code} catch {if (exception instance of typeerror) { do something} else if (exception instance of rangeerror) { do something}} Enfin, le mot clé final est utilisé pour définir le bloc de code à exécuter après le traitement de Lamp;rsquoerreur. Ce bloc est exécuté après les blocs try et catch. De plus, quel que soit le résultat des deux autres blocs, le bloc finira par fonctionner. Cela signifie que même si le bloc de capture ne peut pas traiter complètement lamp;rsquoerreur, ou si une erreur est générée dans le bloc de capture, lamp;rsquointerpréteur finira par exécuter le code dans le bloc avant que le programme ne samp;rsquoécrase. Pour être valide, un bloc damp;rsquoessai en javascript doit être suivi damp;rsquoune capture ou damp;rsquoun bloc final. ce namp;rsquoest pas le cas, lamp;rsquointerpréteur lancera une erreur de syntaxe. Par conséquent, lors du traitement des erreurs, assurez damp;rsquoutiliser au moins un des blocs damp;rsquoessai pour suivre les blocs damp;rsquoessai. Utilisez la méthode OnError () pour gérer globalement les erreurs la méthode OnError () est disponible pour tous les éléments HTML pour gérer toute erreur qui pourrait se produire. Par exemple, si lamp;rsquoétiquette IMG ne trouve pas lamp;rsquoimage de lamp;rsquoURL spécifiée, elle active sa méthode OnError pour permettre à lamp;rsquoutilisateur de traiter lamp;rsquoerreur. En général, devriez fournir une autre URL damp;rsquoimage dans lamp;rsquoappel damp;rsquoerreur pour effondrer la balise img. Voici comment le faire avec Javascript: Const image = document. Image du sélecteur de requête (IMG). OnError = (event) = amp;gt {console.log (
Mécanisme mondial de gestion des erreurs pour les applications. Vous pouvez le faire: fenêtre. OnError = (event) = amp;gt {console.log (
Chaque question: Exemple damp;rsquoerreur pour le paramètre damp;rsquoerreur. Même si le bloc try catch est implémenté lors damp;rsquoun appel de fonction, il indique toujours quamp;rsquoaucune erreur namp;rsquoa été détectée. En raison du délai damp;rsquoexécution, une erreur est générée après lamp;rsquoexécution du bloc de capture. Cela peut se produire rapidement dans les appels réseau, avec des retards inattendus. Vous devez couvrir ces situations lors du développement de votre application. Voici comment traiter correctement les erreurs dans un Callback: Const computecube = (Number, Callback) = amp;gt {settimeout (() = amp;gt {if (typeoof number! =
Ou promettre un sujet illégal. De même, il samp;rsquoagit damp;rsquoun engagement erroné après que toutes les autres opérations ont été effectuées. La solution à ce problème est simple. Il suffit damp;rsquoajouter un appel catch () à la chaîne damp;rsquoengagement comme suit: calculatecube (
Blocs damp;rsquoessai capture asynchrones parce quamp;rsquoils linéarisent le Code et sont faciles à déboguer. Erreurs () Il est préférable damp;rsquoutiliser la méthode OnError () Lorsque savez que votre application doit traiter un grand nombre damp;rsquoerreurs et que celles ci peuvent bien se propager à lamp;rsquoensemble de la base de code. La méthode oneerror permet de gérer les erreurs comme samp;rsquoil samp;rsquoagissait simplement damp;rsquoun autre événement géré par lamp;rsquoapplication. Vous pouvez définir plusieurs gestionnaires damp;rsquoerreurs et les attacher à la fenêtre damp;rsquoapplication lors du rendu initial. Cependant, devez également garder à lamp;rsquoesprit que la méthode OnError () peut inutilement exiger des paramètres dans des projets plus petits avec une plage damp;rsquoerreurs plus petite. êtes sûr que votre application ne produira pas trop damp;rsquoerreurs, les méthodes traditionnelles de démarrage Capture conviennent mieux. En raison de la conception et de la structure du Code, la gestion des erreurs damp;rsquoinvocation et damp;rsquoengagement dans les callbacks et les engagements est différente. Cependant, si choisissez entre les deux avant damp;rsquoécrire votre code, il est préférable de respecter votre engagement. Ceci est dû au fait que promises a une construction intégrée pour connecter catch () et Finally () afin de faciliter le traitement des erreurs. Cette approche est plus simple et plus claire que la définition damp;rsquoautres paramètres la réutilisation des paramètres existants pour traiter les erreurs. Lamp;rsquoutilisation du dépôt git pour suivre le changement de nombreuses erreurs sont généralement causées par des erreurs manuelles dans le dépôt de code. Au fur et à mesure que développez ou débogage votre code, pouvez apporter des changements inutiles qui peuvent entraîner de nouvelles erreurs dans la base de code. Les tests automatisés sont un excellent moyen de vérifier votre code après chaque changement. Cependant, il ne peut que dire si quelque chose ne va pas. ne sauvegardez pas souvent votre code, perdez du temps à travailler sur des fonctions ou des scripts qui fonctionnent correctement avant de les réparer. Camp;rsquoest là que le GIT fonctionne. Avec une politique de soumission appropriée, pouvez utiliser lamp;rsquohistorique GIT comme système de sauvegarde pour voir lamp;rsquoévolution du Code pendant le développement. Vous pouvez facilement parcourir y
Nous avons précédemment soumis et trouvé que la version de la fonction fonctionnait correctement avant, mais a lancé une erreur après des changements non pertinents. Vous pouvez ensuite restaurer lamp;rsquoancien Code ou comparer les deux versions pour déterminer ce qui ne va pas. Des outils modernes de développement Web comme github Desktop ou gitkraken peuvent aider à visualiser ces changements en même temps et à repérer rapidement les erreurs. Lorsque apportez des changements importants au Code, lamp;rsquoexécution damp;rsquoune vérification de code est une habitude qui peut aider à réduire les erreurs. travaillez en équipe, pouvez créer une demande et demander aux membres de lamp;rsquoéquipe de lamp;rsquoexaminer en profondeur. Cela aidera à détecter toute erreur que pourriez ignorer avec votre deuxième œil. Pratiques exemplaires pour le traitement des erreurs javascript les méthodes décrites ci dessus sont suffisantes pour aider à concevoir une méthode robuste de traitement des erreurs pour votre prochaine application JavaScript. Cependant, lors de leur mise en œuvre, il est préférable de garder à lamp;rsquoesprit plusieurs choses afin damp;rsquoobtenir les meilleurs résultats de la prévention des erreurs. Voici quelques conseils pour aider. 1. Utilisez lamp;rsquoerreur personnalisée lors du traitement des exceptions opérationnelles nous avons introduit lamp;rsquoerreur personnalisée plus tôt dans ce guide pour montrer comment personnaliser le traitement des erreurs en fonction de la situation unique de lamp;rsquoapplication. Dans la mesure du possible, il est recommandé damp;rsquoutiliser des erreurs personnalisées plutôt que des classes damp;rsquoerreurs génériques, car elles fournissent plus damp; contextuelles sur les erreurs pour lamp;rsquoenvironnement damp;rsquoappel. Plus important encore, les erreurs personnalisées permettent damp;rsquoajuster la façon dont les erreurs sont affichées dans lamp;rsquoenvironnement damp;rsquoappel. Cela signifie que pouvez choisir de masquer des détails spécifiques ou damp;rsquoafficher des informations supplémentaires sur lamp;rsquoerreur au besoin. Vous pouvez même formater le contenu damp;rsquoerreur au besoin. Cela permet de mieux contrôler la façon dont les erreurs sont interprétées et traitées. Namp;rsquoAvalez pas damp;rsquoexceptions, même les développeurs les plus expérimentés font souvent des erreurs de débutant en utilisant des niveaux damp;rsquoexception profondément dans le Code. Vous pourriez rencontrer une situation avec un morceau de code
Essayez de trouver une solution. connaissez un moyen rapide de corriger les erreurs, comme retry Operation ou logout et re logon, assurez damp;rsquoen faire mention dans lamp;rsquoalerte pour aider à corriger lamp;rsquoexpérience utilisateur en temps réel. Pour les erreurs qui namp;rsquointerfèrent pas avec lamp;rsquoexpérience utilisateur quotidienne, envisagez de supprimer les alertes et damp;rsquoenregistrer les erreurs sur le serveur distant pour résolution ultérieure. 5. Implémenter un Middleware (node.js) sur le noeud. Lamp;rsquoenvironnement В prend en charge les intergiciels pour ajouter des fonctionnalités aux applications serveur. Vous pouvez utiliser cette fonctionnalité pour créer un Middleware de gestion des erreurs pour le serveur. Le plus grand avantage de lamp;rsquoutilisation damp;rsquoun Middleware est que toutes les erreurs sont traitées en un seul endroit. Pour faciliter les tests, pouvez choisir damp;rsquoactiver désactiver ce paramètre. Voici comment créer un Middleware de base: Const logerror = err = {console.log (
Ou perte de mémoire. La meilleure façon de les gérer est de planter lamp;rsquoapplication en utilisant le mode cluster de noeuds pour redémarrer gracieusement lamp;rsquoapplication. Outils uniques tels que JS ou pm2. Cela garantit que lamp;rsquoapplication ne samp;rsquoécrase pas en raison des actions de lamp;rsquoutilisateur, ce qui rend une mauvaise expérience utilisateur. Saisissez toutes les exceptions non détectées (node.js). Vous ne serez jamais en mesure de déterminer si avez masqué toutes les erreurs possibles dans votre application. Par conséquent, une politique de repli doit être mise en œuvre pour détecter toutes les exceptions qui ne sont pas détectées par la demande. Vous pouvez le faire: le processus. Sur (amp;lsquouncaughtexceptionamp;rsquo, Error = amp;gt {console.log (
Guide faisant autorité pour la gestion des erreurs javascript