我正在制作我的第一个电子应用程序,并且正在尝试实现错误处理。如果我写:
throw new Error('something happened')
出现一个大而方便的错误警报模式。我想使用它并随后调用 app.quit() 来关闭应用程序。当然,调用
throw
会终止该函数,并且对于模式警报没有承诺或任何内容。有没有办法在用户单击错误警报上的“确定”后调用 app.quit() ?
这是内置的电子错误处理,它会针对您未正确处理的错误启动。我不知道您是否可以搭载他们的错误处理并向其添加额外的逻辑,但我强烈建议您这样做,因为它会捕获最高级别的错误并破坏您的业务逻辑中发生的任何情况。
您需要做的是自己正确处理错误,然后显示消息框:Electron - Messagebox。
消息框确实会返回一个承诺,您可以通过该承诺实现您想要的目标。
一些示例代码可能如下所示:
const { dialog } = require('electron')
const functionThatMighFail = () => {
throw new Error('something happened');
}
const main = () => {
try {
functionThatMightFail();
catch (error: Error) {
const options = {
type: 'error',
buttons: ['OK'],
title: 'Error',
message: 'Something went wrong!',
detail: 'There was an error while doing foobar',
};
dialog
.showMessageBox(null, options)
.then(() => app.quit());
}
}
您可能还需要考虑更深入地检查如何正确处理应用程序中的错误以及错误后是否可以继续。我认为发生错误时简单地关闭应用程序会带来糟糕的用户体验,但我以符合您的问题的方式编写了答案。