javascript - 是否可以通过运行所有代码 try...catch block 来捕获所有 JS 异常?

标签 javascript error-handling

为什么人们不把所有的 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/

相关文章:

javascript - 如何改进我的backbone.js搜索功能?

azure - Invoke-AzVMRunCommand - 错误处理的最佳实践?

php - 尝试使用 PDO 将表单数据插入数据库时​​不断出现错误

javascript - 故意在JavaScript中创建新错误以检查代码行为

php - 使用多个Laravel实例获取随机错误500。托管@ Rackspace

javascript - CORS:凭据模式为 'include'

php - 滑动后 JQuery Mobile changePage() 到同一页面

javascript - Jquery:如何关注DIV的最后一个字符

javascript - 当我在 PHP 中使用 ECHO 时,jquery.ajax 到 PHP 失败

c# - Linq、错误提供程序、数据绑定(bind) : Custom error messages