我主要使用nodejs(但我对javascript一般都是新手),但更具体地说是expressjs。他们明确建议使用try和catch模式,但我看到其他人建议先做一个尝试过的真实错误。
即
callback(err, data) {
if (err) throw err;
//do something if no error was returned
}
而不是
callback(err, data) {
try {
//do something
} catch(err) {
//handle the error
}
}
哪一种被广泛认为是更好的做事方式?当谈到做某事的“一种真实方式”时,Javascript非常含糊不清。
答案 0 :(得分:3)
有重要区别 - "错误优先"方法用于异步调用,try-catch用于同步。
如果您正在使用某些外部库,则由他们决定如何处理错误。有时会有选项(例如,查看' fs'节点模块 - 同步函数会抛出错误,它由你来捕获它们,异步的函数会在回调中返回错误)
如果您正在实施自己的功能,"错误优先"方法看起来更好,只是因为它符合节点的异步性质。
(以及不使用try-catch的另一个原因 - V8优化器可能无法使用这种结构优化功能,就像它没有那样)