Używam Electrons Quick Start Projekt (Commit dbef48ee7d072a38724ecfa57601e39d36e9714e) do testowania wyjątków.Czy możliwe jest wychwycenie wyjątków procesów renderujących w głównym procesie elektronów?
W index.html
Zmieniłem nazwę wymaganego modułu od renderer.js
do rendererXXX.js
.
require('./renderer.js')
co skutkuje oczekiwanym exeption (jest on widoczny w DevTools dla tego okna):
Uncaught Error: Cannot find module './rendererXXX.js'
Teraz byłoby miło, jeśli główny proces (patrz main.js
) ma świadomość, że jeden proces renderowania nie powiódł się. Tak więc owinął instatiation okna w try-catch bloku
try {
app.on('ready', createWindow)
} catch (e) {
console.log("Exception caught: " + e.message);
} finally {
// nothing yet
}
Ale zdałem sobie sprawę, że wyjątek jest nie przekazane do głównego-procesu. Jakie są typowe sposoby obsługi wyjątków procesów renderowania - czy istnieje sposób na ich obsługę z głównego procesu?
EDIT:
ja owinięty również wiersz, który ładuje index.html
do try-catch, ale nadal nie mogę obsłużyć błąd:
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);
}
Spróbuj umieścić try-catch wewnątrz 'imprezy createWindow' funkcja obsługi. – Bergi
@Bergi: To też nie zadziałało - nadal nie widzę wyjątku w głównym procesie. (Zobacz moje zaktualizowane pytanie) – Edward