Электронный дескриптор изящно завершает работу

#node.js #crash #electron #google-chrome-devtools #libp2p

#node.js #сбой #электронный #google-chrome-devtools #libp2p

Вопрос:

Я пытаюсь реализовать libp2p внутри приложения electron, в котором (очевидно) включена поддержка узлов.

Я попытался перехватить ошибки с помощью следующего кода:

 const errorHandle = `
window.onerror = (err) => {
    console.log(err);
};
process.on("uncaughtException", function (err) {
    console.log(err);
});
process.on("unhandledRejection", function (err) {
    console.log(err);
});
console.log("Injected startup code")`
await mainWindow.loadFile("./public/index.html");
await mainWindow.webContents.executeJavaScript(errorHandle);
  

Однако, если я намеренно или случайно выдаю ошибку, приложение выходит из строя и перезагружается, и я не вижу ошибки, потому что chrome devtools очищает свою консоль и выводит сообщение «Devtools disconnected».

2 примера ошибок:

 console.error("test");
node.connect("INVALID_ADDRESS");
  

Как я могу правильно обрабатывать ошибки, чтобы electron (или node) не зависал?

Ответ №1:

Как оказалось, ошибка была обработана правильно, однако событие было связано с формой, которая по умолчанию обновляет страницу при отправке. Мне пришлось отменить событие по умолчанию,:

 <form onsubmit="return false" on:submit={submit}></form>