gpt4 book ai didi

node.js - ES6 导入错误处理

转载 作者:IT老高 更新时间:2023-10-28 23:11:28 26 4
gpt4 key购买 nike

我目前正在使用 Babel。

我之前使用 require 做了以下操作:

try {  
var myModule = require('my-module');
} catch (err) {
// send error to log file
}

但是,当尝试使用 import 执行此操作时:

try {  
import myModule from 'my-module';
} catch (err) {
// send error to log file
}

我得到错误:

'import' and 'export' may only appear at the top level

现在我了解到 importrequire 不同。来自阅读Are ES6 module imports hoisted? import 提升,这意味着在代码执行之前加载导入。

我之前所做的是,如果任何要求失败,则会创建一个日志,该日志会通过电子邮件提醒我(将日志发送到 logstash 等)。所以我的问题归结为以下几点。

如何在 nodejs 中以一种良好的实践方式处理导入错误?这样的事情存在吗?

最佳答案

您无法捕获 静态导入 错误(参见 Boris 的回答)

不过,您可以为此使用动态 import()

现在是 supported by all evergreen browsers & Node ,并且是标准的一部分since ES2020 .

class ImportError extends Error {}

const loadModule = async (modulePath) => {
try {
return await import(modulePath)
} catch (e) {
throw new ImportError(`Unable to import module ${modulePath}`)
}
}

关于node.js - ES6 导入错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38946112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com