电子中的自定义错误窗口/处理

San*_*esø 1 javascript fs node.js electron

我目前正在构建一个用于文件备份的应用程序,并且它对文件系统进行了大量的读写操作。大多数功能都很好用,但是我在应用程序的错误处理方面有些挣扎。

在下面的屏幕快照中,最后一个路径不是有效目录,并且返回一个异常,如您所见。

在此处输入图片说明

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 :) 
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以用我自己的窗口替换标准错误窗口?还是在某些情况下忽略错误窗口的弹出窗口?第一次与Electron合作,很抱歉,这很明显。

谢谢!

pus*_*kin 6

当您抛出错误时,readdir它会被顶级uncaughtException处理程序捕获,如第一行所示:“未捕获的异常”。

您需要做的是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;
});
Run Code Online (Sandbox Code Playgroud)