在抛出错误后,代码是否可以继续,而不需要 try-catch-finally?

Can the code continue after an error is thrown without requiring a try-catch-finally?

提问人:jwa 提问时间:6/9/2023 最后编辑:jwa 更新时间:6/10/2023 访问量:101

问:

错误列表

JavaScript 中有很多类型的错误,据我所知,只有 1) 完全停止当前脚本,2) 其他类型的错误(、等)仅在错误发生后才停止当前脚本。SyntaxErrorReferenceErrorTypeError

我的问题是,当发生错误时,JavaScript 中是否只有这 2 种行为(假设我们没有捕获这些错误)?

我的问题是,例如,在PHP中,允许您在发生错误后继续执行代码warningswarning

我知道我可以自己检查它,但不可能逐个错误检查,所以我想知道是否有人知道我遗漏的其他行为

JavaScript 异常错误处理 try-catch

评论

1赞 Barmar 6/10/2023
函数可以记录问题而不会引发异常。在任何地方都没有所有这些列表,因为它纯粹是临时的。
1赞 Barmar 6/10/2023
但是,如果抛出异常,则必须使用异常来捕获它 - 没有一类异常不会导致脚本在未捕获的情况下停止。try/catch
1赞 Bergi 6/10/2023
每个异常都会阻止进一步的代码执行(直到它被捕获)。与语法错误的区别在于,当代码无法解析时,代码永远不会开始执行。
1赞 Barmar 6/10/2023
@jwa 是的,我不认为JS有这种区别。
1赞 Barmar 6/10/2023
有什么功能?我说的是任何使用 .console.log()

答:

1赞 Tobin 6/10/2023 #1

Promise 也可能使错误超出范围。这意味着定义 promise 的脚本将继续执行,然后 promise 将在“不同”脚本中执行。

此代码使用第二个 promise 来确保在第一个 promise 完成抛出后,我们仍有更多脚本要运行。

throwing an error out of scope

评论

0赞 jwa 6/10/2023
您的输出是错误的