我使用Electrons Quick Start Projekt(Commit dbef48ee7d072a38724ecfa57601e39d36e9714e)来测试异常。是否有可能在电子主流程中捕捉渲染器进程的异常?
在index.html
我将所需模块的名称从renderer.js
更改为rendererXXX.js
。
require('./renderer.js')
导致预期Exeption(它是在devtools该窗口可见):
Uncaught Error: Cannot find module './rendererXXX.js'
现在,这将是很好,如果主过程(见main.js
)知道,一个渲染器进程失败。因此,我包裹窗口instatiation成的try-catch块
try {
app.on('ready', createWindow)
} catch (e) {
console.log("Exception caught: " + e.message);
} finally {
// nothing yet
}
但是我意识到,有例外是不转发到主处理。那么处理渲染器进程异常的典型方法是什么?有没有办法从主进程处理它们?
编辑:
我还裹着一个加载index.html
成的try-catch行了,但我仍然无法处理错误:
try {
// and load the index.html of the app.
mainWindow.loadURL(`file://${__dirname}/index.html`)
} catch (e) {
console.log("Exception caught in 'createWindow': " + e.message);
}
尝试把在try-catch的'createWindow'事件中处理函数。 – Bergi
@Bergi:这也不起作用 - 我仍然无法在主进程中看到异常。 (查看我更新的问题) – Edward