gpt4 book ai didi

javascript - 如果 Catch 没有运行,如何显示某些内容?

转载 作者:行者123 更新时间:2023-12-03 00:23:00 25 4
gpt4 key购买 nike

我想知道如何仅在通过时“做某事”,例如 catch仅在出现错误时运行。就像我的例子一样,console.log("FOO")不会导致错误,因此捕获不会运行,但是如果没有捕获,我怎样才能让某些东西运行?

 try { 
console.log("FOO")
}
catch(err) {
message.innerHTML = "Input is WRONG";
}
message.innerHTML = "Input Works!" // <--- this will always get hit regardless of error or not

最佳答案

为了让您的 catch 运行,try block 需要失败 - 就像缺少变量的情况一样。

const messageA = document.querySelector('#message-a');
const messageB = document.querySelector('#message-b');

const a = 10;
const b = 10;
// const c = 10;


// Test 1 (works)
try {
let sum = a + b;
messageA.innerHTML = "We're Happy!"
} catch (err) {
messageA.innerHTML = "Houston we have a problem!";
}

// Test 2 (fails because c is not defined)
try {
let sum = a + c;
messageB.innerHTML = "We're Happy!"
} catch (err) {
messageB.innerHTML = "Houston we have a problem!";
}
<p>Test 1: <span id="message-a"></span></p>
<p>Test 2: <span id="message-b"></span></p>

if/else 和 try/catch 的区别

If/else 是条件语句评估条件,例如x == 42
然后根据结果运行 true 或 false block 。

if (condition) { 
/* condition is true do... */
}
else {
/* condition is false do... */
}

Try/catch 是一个异常语句,它将始终运行 try block ,并且仅如果某些导致抛出错误,则将控制转移到 catch block (通常是 fatal error ,否则会破坏程序)。

try {
/* do this... and if it fails transfer control to catch */
}
catch(err) {
/* something caused an error now do this... */
}

将其视为一种处理错误的方法 - 就像您向 api 发出请求并由于某种原因服务器没有响应,您没有被授权或者...

了解更多: Control flow and error handling on MDN

关于javascript - 如果 Catch 没有运行,如何显示某些内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54226313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com