MST
星途 面试题库

面试题:Node.js 中 Domain 模块错误管理的基本使用

请简述在 Node.js 中如何使用 Domain 模块捕获未处理的异常?请给出一个简单的示例代码,展示如何创建一个 Domain 实例并将需要监控的异步操作放入其中。
40.3万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

简述在Node.js中使用Domain模块捕获未处理异常的方法

  1. 引入domain模块:通过const domain = require('domain');引入Node.js内置的domain模块。
  2. 创建Domain实例:使用domain.create()方法创建一个Domain实例。
  3. 绑定事件监听器:为Domain实例绑定error事件监听器,在监听器中处理捕获到的未处理异常。
  4. 将异步操作放入Domain:可以使用domain.run()方法将需要监控的异步操作放入Domain中执行,这样当异步操作中抛出未处理异常时,Domainerror事件会被触发。

示例代码

const domain = require('domain');

// 创建Domain实例
const d = domain.create();

// 绑定error事件监听器
d.on('error', (err) => {
    console.error('捕获到未处理的异常:', err.message);
    console.error(err.stack);
});

// 将异步操作放入Domain
d.run(() => {
    setTimeout(() => {
        throw new Error('模拟一个未处理的异常');
    }, 1000);
});