我主要使用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 非常模糊。
最佳答案
有一个重要的区别 - “错误优先”方法用于异步调用,try-catch 用于同步。
如果您使用一些外部库,则由它们来确定如何处理错误。有时有一些选项(例如查看 Node 的“fs”模块 - 同步函数会抛出错误,由您来捕获它们,异步函数会在回调中返回错误)
如果您要实现自己的函数,“错误优先”方法看起来更好,因为它适合 Node 的异步性质。
(以及不使用 try-catch 的另一个原因 - V8 优化器可能无法像不存在这种构造一样优化函数)
关于javascript - try catch 模式比先错误更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39619927/