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

2023-11-27

我目前正在构建一个用于文件备份的应用程序,它对文件系统进行了大量的读写操作。大部分功能都很好,但我在应用程序的错误处理方面遇到了一些困难。

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

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 :) 

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

Thanks!


当你抛出错误时readdir它被高层抓住了uncaughtException处理程序,由第一行指示:“未捕获的异常”。

您需要做的是添加您自己的自定义处理程序uncaughtException在您的主流程中并显示您想要的任何对话框。

看看dialog module.

例如,您可以使用dialog.showMessageBox方法来配置有关错误对话框的各种内容,如下所示:

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

    // I believe it used to be the case that doing a "throw err;" here would
    // terminate the process, but now it appears that you have to use's Electron's
    // app module to exit (process.exit(1) seems to not terminate the process)
    app.exit(1);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Electron 中的自定义错误窗口/处理 的相关文章

随机推荐

  • BC30560:“ExtensionAttribute”在命名空间“System.Runtime.CompilerServices”中不明确

    我有 asp net 项目 在 net 2 0 中 并将项目转换为 net 4 0 成功构建项目后 我在浏览器上启动网站 它抛出如下错误 编译错误 资源编译期间发生错误 需要满足此请求 具体请查看以下内容 错误详细信息并适当修改您的源代码
  • 用于查找曲线段的霍夫变换

    霍夫变换可用于从图像中提取线条 它还可以用于提取曲线 但这有点困难 因为更高维的霍夫变换会消耗资源 我想知道如何将霍夫变换限制为 3 阶曲线的 2D 投票空间 即 x 3 ax 2 bx c 任何人都知道有什么好的网站可以解释这一点 似乎找
  • 对 python 数组中的日期进行排序

    如何在 python 2 4 上对以下日期数组进行排序 timestamps 2011 06 2 2011 08 05 2011 02 04 2010 1 14 2010 12 13 2010 1 12 2010 2 11 2010 2 0
  • Python中负股息的模[重复]

    这个问题在这里已经有答案了 一直在寻找其他答案 我仍然不明白 python 中负数的模数 例如 df 的回答 x x y y x y 所以 2 5 2 2 5 5 3 是有道理的 这不是 2 2 5 5 0 还是我疯了 具有负值的模运算 奇
  • AWS批处理-如何限制并发作业的数量

    我正在寻找一种方法 通过保留队列中的剩余作业来限制正在运行的批处理作业的数量 aws批处理可以吗 限制最大vcpu数量队列所绑定的托管计算环境的数量将有效限制在该队列上同时运行的批处理作业的数量 但是 需要注意的是 如果您有其他队列共享此计
  • 对象与 DesignData 中的目标类型不匹配

    我将把它扔掉 以防有人以前遇到过这种情况 创建在 WPF 设计器中使用的 DesignData 时 出现以下两个错误之一 对象与目标类型不匹配 在 System Reflection RuntimeMethodInfo CheckConsi
  • jQuery $.ajax,错误处理程序不起作用

    您好 我注意到这个简单的代码无法按预期的方式工作 function test ajax url test GameConfiguration json dataType json data a aaa cache false method
  • 在android中比较两个声音

    我正在开发一个语音消息应用程序 我需要比较两个语音 例如 通过录制您的声音注册应用程序 已发送语音消息至 另一个用户通过录制语音 但首先需要比较这个语音 到配置文件中录制的声音 出于安全目的 需要知道录制的消息是否来自特定用户 我试过 在
  • PHP_AUTH_USER 未设置?

    由于某种原因 其中没有任何代码 if isset SERVER PHP AUTH USER isset SERVER PHP AUTH PW When the above is set the code that is here will
  • 当域规则无效时,put 方法上的其余服务的 http 响应代码是什么

    当使用 PUT 方法更新资源 并且请求包含一些会使域规则无效的数据时 返回的最合适的响应代码是什么 例如 客户资源必须具有name指定的 如果代理尝试在不提供 PUT 的情况下发出 PUTname我不想更新资源 我想告诉调用者他们需要提供一
  • Cassandra如何选择发送请求的节点?

    想象一下 Cassandra 集群需要由客户端应用程序访问 在Java api中 我们创建一个集群实例并通过会话发送读取或写入请求 如果我们使用读 写一致性 ONE API 如何选择实际节点 协调节点 来转发请求 是随机选择的吗 请帮忙解决
  • C 内联函数和“未定义的外部”错误

    我试图用内联函数替换一些宏子例程 以便编译器可以优化它们 以便调试器可以单步执行它们 等等 如果我将它们定义为普通函数 它就可以工作 void do something void blah void main void do somethi
  • 如何创建具有多个键的 NSDictionary?

    我不确定我要问的是否真的是NSDictionary有多个键但是还可以 我想做的是创建一个NSDictionary包含我的数据的键和值 然后将其转换为JSON格式 这JSON格式看起来就像这样 eventData eventDate Jun
  • TF900547:包含 Visual Studio 测试运行程序集的目录无效,但看不到 MSTest.exe

    我在 TFS2013 构建上收到以下错误 TF900547 The directory containing the assemblies for the Visual Studio Test Runner is not valid Loo
  • 如何使日期与区域设置无关?

    我有一个数据库 将日期存储在OleDateTime格式 采用 GMT 时区 我已经实现了一个类 扩展Date在java中以经典日期格式表示 但我的课程取决于区域设置 我在 GMT 2 因此 它将数据库中的日期转换为date 2 hours
  • dateWithTimeIntervalSince1970 未返回正确的日期

    我下面有以下方法 旨在从 API 调用中检索 unixTimeStamp 并将其转换为我可以轻松操作和使用的 NSDate 对象 由于某种原因 这会返回错误的值 例如 当 unixTimeStamp 为 1385152832 时 日期应该为
  • 如何动态调整 HTML5 中的视频大小?

    我们的项目要求在一个 html 页面中有 3 个视频 如下图所示 现在 通过单击每个视频的右下角 用户可以调整视频的大小 其他视频的大小也会相应改变 我在这里面临的问题是如何通过按住并拖动鼠标单击每个视频的右下角来调整视频大小 我尝试过使用
  • Pandas DataFrame 中计数的数据透视表

    我有一个熊猫数据框 Col X Col Y class 1 cat 1 class 2 cat 1 class 3 cat 2 class 2 cat 3 我想转变成 cat 1 cat 2 cat 3 class 1 1 0 0 clas
  • 设备与模拟器语言方案

    有谁明白吗why这正在发生吗 在任何模拟器上 所有方案都可以通过以下代码找到 NSArray
  • Electron 中的自定义错误窗口/处理

    我目前正在构建一个用于文件备份的应用程序 它对文件系统进行了大量的读写操作 大部分功能都很好 但我在应用程序的错误处理方面遇到了一些困难 在下面的屏幕截图中 最后一个路径不是有效的目录 并返回异常 如您所见 function getTota