我有以下 Javascript 代码
main.js
'use-strict';
const assert = require('assert');
var r = require('./index.js');
async function fun() {
try {
r.start();
} catch (e) {console.log(e);}
}
fun();
index.js
'use-strict';
var assert = require('assert');
async function start() {
assert.ok(1==0);
}
exports.start = start;
现在 index.js
中抛出的异常没有被 main.js
捕获,为什么会这样?有什么办法可以帮助我吗?
我在从 main.js 调用的不同文件中有一系列函数,我不想将 try/catch 放在所有这些函数中。
答案 0 :(得分:0)
如果你把 main.js 改成这个,希望这个错误会被捕获,因为函数会等待 promise 解决,并在 main.js 中抛出错误。
main.js
'use-strict'
const assert = require('assert')
const r = require('./index.js')
const fun = async () => {
try {
// Wait for the promise to resolve
await r.start()
} catch (error) {
console.log(error)
throw new Error(`[main.js] - Error was thrown ${error}`)
}
}
fun()