【发布时间】:2017-04-08 12:10:41
【问题描述】:
在我的 Electron 应用程序的主进程中,我试图处理在创建已存在的文件时引发的异常。但是,我的 catch 子句从未被输入,异常被垃圾邮件发送给用户。我做错了什么?
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不会抛出异常,它会将错误传递给它的异步回调。 -
与其他一些
fs方法不同,createWriteStream不接受回调。 -
是的,没错,它会发出
error事件,您需要使用回调来处理这些事件(显然,如果没有注册处理程序,它会异步抛出全局异常)。 -
全局异步异常让我感到困惑。感谢您的澄清。
标签: javascript node.js try-catch electron