发生的情况是,在我的终端中,我有一个 Python 实时更新 JSON 文件,导致文件打开有时会更新数据,禁止 JavaScript 访问,从而导致错误。
所以在这种情况下,我希望当 JavaScript 无法访问文件时,它不会传递错误,而是不执行任何操作,以继续显示错误前收集的值。
但正如我们在代码中看到的那样,我使用的是 try{}catch(e){}
,即使如此,错误还是不断出现
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) {
}
}
答案 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。