【发布时间】:2018-07-03 20:37:53
【问题描述】:
如果我有这样的代码:
let result;
try {
result = doSomethingThatCanThrow();
} catch (e) {
throw new Error(`Thrown error because <some info> ${e}`)
}
// do something with result if didn't throw
这是 JS 中的有效模式吗?我不喜欢使用let。我更喜欢const,但在这种情况下我不能使用它,因为它在try-catch 块之外不可用。
我可以将整个代码放在 try 块中并摆脱 let 但在我看来它会更难阅读:
try {
const result = doSomethingThatCanThrow();
// do something with result if didn't throw
} catch (e) {
throw new Error(`Thrown error because <some info> ${e}`)
}
请记住,它总是可以增长的。
我也可以随时跳过重新抛出,但我想在错误中添加更多信息。
哪个选项更好,为什么?还有其他可能吗?
【问题讨论】:
-
您有什么理由不想使用 var 而不是 let 或 const?两者都是块作用域,其中 var 是全局的。
-
有什么要求?
-
使用
var会导致更多的错误。使用var也更难调试代码
标签: javascript try-catch