module d'erreur nodejs

WBOY
Libérer: 2023-05-18 14:08:08
original
485 Les gens l'ont consulté

Node.js est un environnement d'exécution JavaScript basé sur le moteur Chrome V8 et est largement utilisé pour développer des applications Web hautes performances. Dans Node.js, diverses erreurs peuvent survenir et affecter la stabilité et la fiabilité de votre application. Par conséquent, Node.js fournit un module d'erreur pour aider les développeurs à gérer les erreurs.

Le module d'erreurs de Node.js fournit certains types d'erreurs courants. Lorsque vous utilisez ces types d'erreurs, il vous suffit de définir le nom de la classe d'erreur et le message d'erreur. Ensuite, Node.js nous aidera automatiquement à créer un objet d'erreur. Lorsque l'objet d'erreur est capturé, nous pouvons facilement obtenir le type d'erreur, le message et les informations sur la pile pour faciliter le débogage et la réparation de l'erreur.

Cet article présente les types d'erreurs courants dans Node.js et comment utiliser le module d'erreur pour capturer et gérer les erreurs.

Error Type

Dans Node.js, les types d'erreur courants sont les suivants :

Error

Error est la classe de base pour tous les types d'erreurs. Il s'agit d'un objet de langage JavaScript intégré utilisé pour représenter tout type d'erreur. Lorsqu'une exception non interceptée se produit pendant l'exécution de Node.js, un objet Error est généré. Error 是所有错误类型的基类,它是一个内置的 JavaScript 语言对象,用来表示任何类型的错误。当 Node.js 运行中发生一个未被捕捉的异常时,就会抛出一个 Error 对象。

Example:

throw new Error('something went wrong');
Copier après la connexion

TypeError

TypeError 是一种常见的错误类型,表示变量或参数类型错误。当运行时发现变量或函数参数类型不符合预期时,就会抛出一个 TypeError 错误。

Example:

var n = null;
var result = n.toUpperCase();  // TypeError: Cannot read property 'toUpperCase' of null
Copier après la connexion

RangeError

RangeError 表示变量超出了有效范围或者数组超出了合法范围,例如,Array 访问时超出索引边界, Math 计算时超出范围等。

Example:

var arr = [1, 2, 3];
var n = arr[100];   // RangeError: Invalid array length
Copier après la connexion

SyntaxError

SyntaxError 表示代码语法错误,例如,拼写错误、标点符号错误、缺失括号等。

Example:

var n = 5;
if (n == 5 {    // SyntaxError: missing ) after condition
    console.log('value is 5');
}
Copier après la connexion

EvalError

EvalError 表示在 eval 函数中发生的错误。

Example:

try {
  eval('alert("Hello World)'); // EvalError: missing ) after argument list
} catch (err) {
  console.log(err.stack);
}
Copier après la connexion

错误处理

当发生一个错误时,我们可以使用 Node.js 的 try...catch 语句来捕捉错误,进而进行错误处理或者将错误抛出。

try {
  // some code here
} catch (err) {
  // error handling here
}
Copier après la connexion

同时,Node.js 还提供了一些处理错误的方法:

1. process.on.

可以使用 process.on 方法来捕获未被 try...catch 捕获的异常,进行最后的处理和记录。

process.on('uncaughtException', (err) => {
  console.log('Uncaught Exception');
  console.log(err.stack);
});
Copier après la connexion

2. console.trace

console.trace 方法打印出当前的调用堆栈跟踪信息,包括当前位置和函数调用堆栈。

function foo() {
  console.trace('trace function');
}

function bar() {
  foo();
}

bar();
Copier après la connexion

Output:

Trace: trace function
    at foo (/path/to/file.js:2:11)
    at bar (/path/to/file.js:6:3)
    at Object.<anonymous> (/path/to/file.js:9:1)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:643:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)
    at internal/main/run_main_module.js:17:11
Copier après la connexion

3. assert

assert

Exemple :

var assert = require('assert');
var n = 5;
assert.ok(n == 5, 'n should be 5');
Copier après la connexion
TypeError

TypeError est un type d'erreur courant qui indique que le type de variable ou de paramètre est faux . Une erreur TypeError est générée lorsque le runtime découvre que le type d'une variable ou d'un paramètre de fonction ne correspond pas au type attendu. #🎜🎜##🎜🎜#Exemple : #🎜🎜#rrreee#🎜🎜#RangeError#🎜🎜##🎜🎜#RangeError signifie que la variable dépasse la plage valide ou que le tableau dépasse la plage légale plage, telle que, Array dépasse la limite de l'index lors de l'accès, Math dépasse la plage lors du calcul, etc. #🎜🎜##🎜🎜#Exemple : #🎜🎜#rrreee#🎜🎜#SyntaxError#🎜🎜##🎜🎜#SyntaxError indique des erreurs de syntaxe de code, telles que des fautes d'orthographe, des erreurs de ponctuation, des erreurs de syntaxe supports etc. #🎜🎜##🎜🎜#Exemple : #🎜🎜#rrreee#🎜🎜#EvalError#🎜🎜##🎜🎜#EvalError signifie que cela se produit dans la fonction eval erreur. #🎜🎜##🎜🎜#Exemple : #🎜🎜#rrreee#🎜🎜#Gestion des erreurs#🎜🎜##🎜🎜#Lorsqu'une erreur se produit, nous pouvons utiliser le try...catch de Node.js code> pour détecter les erreurs, puis effectuer la gestion des erreurs ou générer des erreurs. #🎜🎜#rrreee#🎜🎜#En même temps, Node.js fournit également quelques méthodes pour gérer les erreurs : #🎜🎜##🎜🎜#1 <code>process.on.#🎜🎜#. #🎜 🎜#Vous pouvez utiliser la méthode process.on pour intercepter les exceptions qui ne sont pas interceptées par try...catch pour le traitement final et l'enregistrement. #🎜🎜#rrreee#🎜🎜#2. La méthode console.trace#🎜🎜##🎜🎜#console.trace imprime les informations de trace de la pile d'appels actuelle, y compris Emplacement actuel et pile d’appels de fonction. #🎜🎜#rrreee#🎜🎜#Sortie : #🎜🎜#rrreee#🎜🎜#3. Le module assert#🎜🎜##🎜🎜#assert fournit une assertion. les méthodes sont utilisées pour détecter les erreurs et les exceptions dans les programmes. #🎜🎜#rrreee#🎜🎜#Conclusion#🎜🎜##🎜🎜#Le module d'erreur de Node.js fournit certains types d'erreurs courants, ainsi que des méthodes de gestion des exceptions qui ne sont pas interceptées par try...catch. Dans les applications Node.js, une gestion appropriée des erreurs peut améliorer la stabilité et la fiabilité du programme et nous aider à mieux trouver et résoudre les problèmes d'erreur en temps opportun. #🎜🎜#

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal