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.
Dans Node.js, les types d'erreur courants sont les suivants :
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');
TypeError
是一种常见的错误类型,表示变量或参数类型错误。当运行时发现变量或函数参数类型不符合预期时,就会抛出一个 TypeError
错误。
Example:
var n = null; var result = n.toUpperCase(); // TypeError: Cannot read property 'toUpperCase' of null
RangeError
表示变量超出了有效范围或者数组超出了合法范围,例如,Array
访问时超出索引边界, Math
计算时超出范围等。
Example:
var arr = [1, 2, 3]; var n = arr[100]; // RangeError: Invalid array length
SyntaxError
表示代码语法错误,例如,拼写错误、标点符号错误、缺失括号等。
Example:
var n = 5; if (n == 5 { // SyntaxError: missing ) after condition console.log('value is 5'); }
EvalError
表示在 eval
函数中发生的错误。
Example:
try { eval('alert("Hello World)'); // EvalError: missing ) after argument list } catch (err) { console.log(err.stack); }
当发生一个错误时,我们可以使用 Node.js 的 try...catch
语句来捕捉错误,进而进行错误处理或者将错误抛出。
try { // some code here } catch (err) { // error handling here }
同时,Node.js 还提供了一些处理错误的方法:
process.on
.可以使用 process.on
方法来捕获未被 try...catch 捕获的异常,进行最后的处理和记录。
process.on('uncaughtException', (err) => { console.log('Uncaught Exception'); console.log(err.stack); });
console.trace
console.trace
方法打印出当前的调用堆栈跟踪信息,包括当前位置和函数调用堆栈。
function foo() { console.trace('trace function'); } function bar() { foo(); } bar();
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
assert
assert
var assert = require('assert'); var n = 5; assert.ok(n == 5, 'n should be 5');
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!