即使使用 Try{} Catch (e){},脚本也不会忽略错误 -> Uncaught (in promise) SyntaxError: Unexpected end of Json Imput

时间:2021-07-29 16:45:49

标签: javascript try-catch

发生的情况是,在我的终端中,我有一个 Python 实时更新 JSON 文件,导致文件打开有时会更新数据,禁止 JavaScript 访问,从而导致错误。

所以在这种情况下,我希望当 JavaScript 无法访问文件时,它不会传递错误,而是不执行任何操作,以继续显示错误前收集的值。

但正如我们在代码中看到的那样,我使用的是 try{}catch(e){},即使如此,错误还是不断出现

enter image description here


function refresh_images() {
    try {
        let selectedstages = document.getElementById("matches").selectedOptions[0].getAttribute("data-stages");
        let selectedevents = document.getElementById("matches").selectedOptions[0].getAttribute("data-events");

        fetch("testedropdown.json")
            .then(response => response.json())
            .then(data => {
                console.log(data.Stages[selectedstages].Events[selectedevents].Eps)
            })
    } catch (e) {
    }
}

1 个答案:

答案 0 :(得分:1)

if(!cin){ cin.clear(); // without this: infinite cin.ignore(); returnText = "Sorry, I can`t do that. :("; }else if(input == sum){ returnText = "Great, you did it! :)"; }else{ returnText = "Sorry, the correct result would have been " + to_string(sum) + ". :("; } cout << returnText << "\n\n"; 执行异步操作,而 cin 只能捕获第一次在其相应块内运行代码时产生的错误(您的错误在您的第一个 fetch 回调中抛出)。您可以添加一个 try/catch 包装 .then(),它会按您的预期工作。

或者,您可以使用 promises try/catch 方法安全地重新格式化代码,如下所示:

response.json()

更多信息here