Если вы хотите приложить минимальные усилия для перехвата всех необработанных ошибок как из основного процесса, так и из процессов визуализации в Electron, а также из , показывающего их пользователю через диалоговое окно , Самый простой способ - использовать без обработки электронов , который делает именно это:
После его установки (npm i electron-unhandled
) как в основном файле, так и в файлах записей рендерера (вероятно, их корень index.js
), вам просто нужно добавить в начале:
const unhandled = require('electron-unhandled');
unhandled({ showDialog: true });
Теперь, как говорится, хорошая практика - использовать глобальный перехватчик ошибок, но он действительно плох, если вы используете только это. Вы должны попытаться объяснить свою обработку ошибок более точно, хотя бы методом по методу:
.then() { ... }.catch(err => ...)
за ваши обещания,
(..., (err, res) => { if (err !== null) { ... } ... )
для ваших обратных вызовов,
try { ... } catch(err) { ... }
для не-асинхронных или await
кодовых частей кода.
И, как примечание, я сам создал библиотеку dependenciless , чтобы было легко и безопасно создавать словарь глобальных ошибок, чтобы упорядочить ваши ошибки, но есть и другие альтернативы, если этот не соответствует вашим потребностям.