为什么人们不把所有的 JS 代码写在一个大的 try...catch block 中?或者更好的是,将所有代码放在一个函数中,并通过从 try...catch block 调用该函数来启动程序。为什么这不是常态?有什么问题?
function allMyJSCode() {
console.log("I can get here");
foo.bar = ""; //accessing property of uninitialized object
console.log("but never here");
}
try {
allMyJSCode();
} catch(error) {
console.log("Error from allMyJSCode: " + error);
}
//I can get here
//Error from allMyJSCode: ReferenceError: foo is not defined
最佳答案
因为一旦发生错误,其余代码将不会被执行,它会直接进入catch
block 并忽略可能重要的代码。你不希望这样。
想象一下这个场景:
// Important code #1
// Important code #2
现在,如果您将这两者组合在一个巨大的 try...catch
中,并且由于某种原因 Important code #1
抛出错误,则 Important code #2
永远不会被执行,并且可能会导致问题,而如果每个都包含在自己的 try...catch
中,那么无论 重要代码中发生什么# 1
,重要代码#2
将被到达并被执行。
重要代码 #1
可能就像更改元素的背景一样微不足道,并且它可能会阻止执行处理填充数据、发送请求等的代码......
关于javascript - 是否可以通过运行所有代码 try...catch block 来捕获所有 JS 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59954672/