#javascript #node.js #exception
#javascript #node.js #исключение
Вопрос:
У меня есть следующий код 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 во все из них.
Комментарии:
1. Асинхронный вызов функции возвращает обещание, чтобы вы могли обработать ошибку в
catch
блоке обещания.2. @rogu-smith Я новичок в javascript, не могли бы вы уточнить со ссылкой на код?
Ответ №1:
Если вы измените main.js к этому, будем надеяться, ошибка будет перехвачена, поскольку функция будет ждать разрешения обещания и выдаст ошибку в 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()
Комментарии:
1. Я изменил свой main.js к упомянутому, но, похоже, это не работает, я что-то упускаю?
2. Что происходит? Вы получаете какие-либо ошибки?