📜  Node.js 中的错误类

📅  最后修改于: 2022-05-13 01:56:41.503000             🧑  作者: Mango

Node.js 中的错误类

Node.js 从 JavaScript < Error > 类继承 JavaScript 和系统错误,并保证提供该类可用的属性。使用由 JavaScript 提供的try...catch构造处理的 throw 机制立即抛出错误的 JavaScript 异常。

Node.js 处理应用程序运行期间发生的错误,支持多种错误机制,即如何报告和处理所有这些错误取决于错误类型和API样式。应用程序代码也可以触发用户指定的错误。 Node.js 生成的所有错误都是实例或继承自 Error 类。在 Node.js 中,它在运行下面给出的应用程序时会遇到多种类型的错误:

类:AssertionError: AssertionErrors由 < errors.Error > 类扩展。当它检测到发生了不应发生的异常逻辑违规时,就会触发这些错误,并且断言模块会引发所有这些错误。 assert 模块抛出的所有错误都是AssertionError类的实例。

示例 1:文件名:index.js

// Node.js program to demonstrate 
// Assertion error in JavaScript
  
// Importing Assert module
const assert = require('assert');
  
console.log("Throws Assertion Error...");
  
// Comparing equality using assert
assert.strictEqual(
    {'Alfa':'hi', 'beta':'hello'}, 
    {'Alfa':'hi', 'beta':'hello'}
);
// Throws AssertionError

使用以下命令运行index.js文件:

node index.js

输出:

类: RangeError:它表明提供的参数不在可接受的值范围内。它可能是一个数字范围,或者在选项集之外。

示例 2:文件名:index.js

// Node.js program to demonstrate 
// range error in JavaScript
  
// Importing http module
const http = require('http');
  
// Creating server with port no
// out of range
var server = http.createServer()
    .listen(46456656, (err, res)=>{
    // Throws Range Error
});

输出:

类:ReferenceError:它指定没有定义任何人试图访问的变量。此类错误指定代码中的拼写错误或程序损坏。 ReferenceError的实例指定代码中的错误,直到应用程序动态运行代码。

示例 3:文件名:index.js

// Node.js program to demonstrate 
// Reference error in JavaScript
  
try {
  const alfa = 10;
  const beta = alfa + gamma;
  
  // Throws with a ReferenceError 
  // because gamma is undefined
} catch (err) {
  console.log(err.message);
  console.log(err);
  
  // Handle the error here.
}

输出:

类: SyntaxError:它指定程序不是有效的 JavaScript,它可能是代码评估的结果。这些错误大多是由于 eval、 函数、require 或 vm 而发生的。

示例 4:文件名:index.js

// Node.js program to demonstrate 
// Syntax error in JavaScript
  
try {
  
  // Import vm module
  require('vm').runInThisContext('alfa @ beta');
} catch (error) {
  
  // Prints a Syntax Error.
  console.log(error);
}

输出:

类:SystemError: Node.js 生成的系统错误是由于其运行时环境中的异常而发生的。当应用程序违反操作系统约束时,可能会出现这些错误。

示例 5:文件名:index.js

// Node.js program to demonstrate 
// Reference error in JavaScript
  
// Importing fs module
const fs = require('fs');
  
// Callback function
function errorCallback(err, data) {
  if (err) {
    console.error('There was an error', err);
    return;
  }
  return(data);
}
  
// Trying to read file that does not exist
fs.readFile('/some/non-existing/file', errorCallback);

输出:

类:TypeError:它指定提供的参数不是允许的类型。例如,调用一个实际上不存在的函数将是一个 TypeError。就好像表单是参数验证一样,它会立即抛出 TypeError 实例。

示例 6:文件名:index.js

// Node.js program to demonstrate 
// Type error in JavaScript
  
try {
  if(1) {
    if(2) {
      console.loo('alfa')
    }
  }
} catch (error) {
console.log(error);  
}

使用以下命令运行index.js文件:

node index.js

输出:

参考: https://nodejs.org/api/errors.html#errors_class_assertionerror