настраиваемое окно ошибок / обработка в Electron - PullRequest
0 голосов
/ 04 июня 2018

В настоящее время я создаю приложение для резервного копирования файлов, и оно довольно много читало и записывало в файловую систему.Большинство из них прекрасно работает, но я немного борюсь с обработкой ошибок приложения.

На скриншоте ниже последний путь не является допустимым каталогом и возвращает исключение, как вы можете видеть.

enter image description here

function getTotalSize(pathToDir, dir) {
fs.readdir(pathToDir, function(err, files) {
    if (err) {
        // handle my error here
        throw new Error('something bad happened');
        return;
    }

    // continue if no errors :) 

Мой вопрос: возможно ли заменить стандартное окно ошибки на мое собственное?Или в некоторых случаях игнорировать всплывающее окно с ошибкой?В первый раз, работая с Электроном, извините, если это очевидно.

Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Когда вы выбрасываете ошибку из readdir, она обрабатывается обработчиком верхнего уровня uncaughtException, указанным в первой строке: «Uncaught Exception».

Что вам нужно сделать, это добавитьсвой собственный обработчик для uncaughtException в вашем основном процессе и покажите любой диалог, который вы хотите оттуда.

Посмотрите на модуль dialog.

Например, вы можете использовать метод dialog.showMessageBox для настройки всевозможных вещей в диалоге ошибок, например:

process.on("uncaughtException", (err) => {
   const messageBoxOptions = {
        type: "error",
        title: "Error in Main process",
        message: "Something failed"
    };
    dialog.showMessageBox(messageBoxOptions);
    throw err;
});
...