


Introduction au mécanisme de gestion des erreurs JavaScript (avec exemples)
Cet article vous présente une introduction au mécanisme de gestion des erreurs JavaScript (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Parfois, dans la fonction outil que vous encapsulez, si aucun paramètre n'est transmis ou si des paramètres du mauvais type sont transmis, certaines erreurs doivent être renvoyées en guise d'avertissement si le framework n'est pas utilisé normalement, ce sera le cas ; jetez également Si quelque chose ne va pas, si vous ne savez rien de l'erreur, vous ne pourrez pas la déboguer. Sur la base de ce qui précède, il est nécessaire de comprendre le mécanisme de gestion des erreurs.
Ce qui suit est le résumé de l’auteur. S’il y a des erreurs, veuillez les signaler.Constructeur d'erreur
Il y a un total de 8 constructeurs de types d'erreur dans la spécification JavaScript
Erreur -- objet d'erreur
SyntaxError --erreur de syntaxe du processus d'analyse
TypeError --non valide Type
ReferenceError -- Référence invalide
RangeError -- La valeur dépasse la plage valide
URIError -- Erreur lors de l'analyse du codage URI
EvalError -- Erreur lors de l'appel de la fonction d'évaluation
InternalError -- Interne erreur du moteur Javascript Des exceptions sont levées, "Trop de récursion"
Deux d'entre elles sont spécialement expliquées :
EvalError est une erreur lors de l'appel de la fonction eval et a été obsolète Pour des raisons de compatibilité descendante, les versions inférieures peuvent le faire. encore être utilisé.
InternalError renvoie une erreur si la récursion est trop profonde. La plupart des navigateurs ne l'ont pas implémentée. Il s'agit d'une méthode non standard et est désactivée dans l'environnement de production.
Relation d'héritage
Error est la classe de base de. d'autres types héritent de la classe Error et peuvent être utilisés Object.getPrototypeOf() fourni dans ES6 pour déterminer si une classe hérite d'une autre classe.
console.log(Object.getPrototypeOf(SyntaxError) === Error); // true console.log(Object.getPrototypeOf(TypeError) === Error); // true console.log(Object.getPrototypeOf(RangeError) === Error); // true console.log(Object.getPrototypeOf(URIError) === Error); // true console.log(Object.getPrototypeOf(EvalError) === Error); // true console.log(Object.getPrototypeOf(ReferenceError) === Error); // true
Parlons de l'utilisation de chaque type d'erreur et des scénarios d'erreur.
Erreur
Un objet erreur peut être créé via le constructeur Error. Lorsqu'une erreur d'exécution se produit, un objet d'instance Error sera généré.
Syntaxe : new Error([message])
Paramètres :
message 可选,错误描述信息。
Lance une erreur
Utilisez l'instruction throw pour lancer une exception
throw new Error('Throw here est le message d'erreur')
Après l'exécution, le résultat sera imprimé sur la console :
Erreur non capturée : ce qui est renvoyé ici est le message d'erreur
Remarque : après avoir utilisé throw pour lever une exception, le message suivant le code ne sera plus exécuté.
Capturer les erreurs
Vous pouvez capturer cette erreur via l'instruction try{}catch(){}
try{ throw new Error('这里抛出的是错误信息') } catch(err){ alert(err.name + ' '+ err.message) }
Description de l'attribut :
当使用new Error创建错误实例后,会有两个属性:
let e = new Error('Le message d'erreur est émis ici');
attribut name, qui est le type d'erreur, cette fois est Error
attribut message, qui est le message d'erreur, ceci time est 'Ce qui est renvoyé ici est un message d'erreur'
SyntaxError
Erreur de syntaxe dans le processus d'analyse Il existe de nombreuses erreurs renvoyées par ce type, qui sont souvent des erreurs grammaticales causées lors de l'écriture, par exemple :
let n = 11; // Uncaught SyntaxError: Invalid or unexpected token let str = "hel"lo" // Uncaught SyntaxError: Unexpected identifier let 123Var = 'hi' // Uncaught SyntaxError: Invalid or unexpected token
Il existe de nombreuses erreurs de syntaxe, donc je ne les listerai pas toutes. Lors de l'exécution dans le navigateur, la console générera une erreur et vous indiquera de quelle ligne il s'agit, donc le débogueur. est plus pratique. Mais vous devez comprendre que le type d'erreur est SyntaxError et le message d'erreur qui suit, afin qu'il soit plus facile de corriger l'erreur.
TypeError
n'est pas de type valide. Ce type d'erreur signifie que le type donné n'est pas le type requis, ce qui entraîne une inopérabilité et une erreur de type sera générée.
La variable ou le paramètre n'est pas du type attendu,
La variable ou le paramètre n'est pas du type attendu
Par exemple, l'opérateur nouveau doit être suivi d'une fonction, et celui donné n'est pas une fonction, une erreur de type sera générée
let fn = 'hello'; new fn;
Lance une erreur :
Uncaught TypeError : fn n'est pas un constructeur
Appel d'une méthode qui ne le fait pas exister sur un objet
let obj = {}; obj.fn()
Lance une erreur :
Uncaught TypeError : obj.fn n'est pas une fonction
Bien sûr, vous pouvez également forcer les paramètres entrants à être des types spécifiés lorsque encapsulant la fonction, sinon une erreur de type sera générée.
function flatten(arr){ if( !Array.isArray(arr) ) { throw new TypeError('传入参数不是数组') } }
flatten('test');
Lorsque le paramètre entrant n'est pas un tableau, une erreur de type personnalisé est générée :
Uncaught TypeError : Le paramètre entrant n'est pas un tableau
ReferenceError
Référence invalide.
Référence à une variable qui n'existe pas
console.log(a);
Lance une erreur
Uncaught ReferenceError : a n'est pas défini
Attribue une variable à une variable qui ne peut pas être Données assignées
Cette erreur est souvent commise lors d'un jugement dans l'instruction if après avoir appelé une méthode. L'opérateur de comparaison == est écrit comme l'opérateur d'affectation =. Par exemple, pour juger si le premier caractère d'une chaîne est le. caractère spécifié :
let str = 'hello'; if( str.charAt(0) = 'h' ){ console.log('第一个字符为h'); }
Lance une erreur :
Uncaught ReferenceError : côté gauche invalide dans l'affectation
RangeError
La valeur est en dehors de la plage valide. Dans certaines méthodes, la valeur transmise doit se situer dans une certaine plage, sinon une erreur hors plage sera générée.
La longueur transmise lors de la création du tableau est inférieure à 0
let arr = new Array(-1)
Lance une erreur :
Uncaught RangeError : longueur de tableau non valide
La méthode de répétition répète la chaîne spécifiée le nombre de fois où il est répété est inférieur à 0
let str = 'hello'; str.repeat(-1)
Erreur de lancement :
Uncaught RangeError : valeur de comptage non valide
URIError
Erreur dans traitement du codage URI. Les paramètres de la fonction sont incorrects, principalement les six fonctions encodeURI(), decodeURI(), encodeURIComponent(), decodeURIComponent(), escape() et unescape().
Par exemple :
decodeURIComponent('%'); decodeURI('%2')
Lance une erreur :
Uncaught URIerror : URI mal formé
Type d'erreur personnalisé
Parfois, vous souhaitez personnaliser Pour le type d'erreur, vous devez personnaliser un constructeur, puis laisser le prototype hériter de Error.prototype.
function MyErrorType(message){ this.message = message || '错误'; this.name = 'MyErrorType'; this.stack = (new Error()).stack; // 错误位置和调用栈 } MyErrorType.prototype = Object.create(Error.prototype); MyErrorType.prototype.constructor = MyErrorType; throw new MyErrorType('自定义错误类型抛出错误')
关于调用的错误栈信息
提供的错误的跟踪功能,以什么样的调用顺序,在哪个文件的哪一行捕获到这个错误。
例如以下调用:
function trace() { try { throw new Error('myError'); } catch(e) { console.log(e.stack); } } function b() { trace(); } function a() { b(3, 4, '\n\n', undefined, {}); } a('first call, firstarg');
错误信息为:
Error: myError
at trace (
at b (
at a (
at
以上为抛错的构造函数的总结,如有误之处欢迎扶正。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.
