在我的Electron應用程序的主要過程中,我試圖處理創建已存在的文件時引發的異常。但是,我的catch子句從不輸入,並且該例外被垃圾郵件給用戶。我究竟做錯了什麼?無法捕捉異常fs.createWriteStream()
let file;
try {
// this line throws *uncaught* exception if file exists - why???
file = fs.createWriteStream('/path/to/existing/file', {flags: 'wx'});
}
catch (err) {
// never gets here - why???
}
'createWriteStream'不拋出異常,它傳遞一個錯誤的*異步回調*。 – Bergi
與其他'fs'方法不同,'createWriteStream'不接受回調。 –
是的,它會發出你需要用回調處理的錯誤事件(顯然,如果沒有註冊處理程序,它會異步拋出全局異常)。 – Bergi