gpt4 book ai didi

typescript - typescript 中的 "throw(e)"和 "throw e"有区别吗?

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:23 27 4
gpt4 key购买 nike

我找不到关于 typescript 中抛出语法的任何信息,所以我只是想知道这两者在语义上是否相同?从我测试过的情况来看,这两种方法都保留了调用堆栈。

try {
throw new Error("You can't recover from this.");
} catch (e) {
console.error(e);
throw e;
}
try {
throw new Error("You can't recover from this.");
} catch (e) {
console.error(e);
throw(e);
}

在 C# 中这样做会破坏调用堆栈,所以我只想绝对确定。正确的 C# 方法是这样的:

try {
throw new Exception("You can't recover from this.");
catch (Exception e)
_logger.LogError(e);
throw;
}

最佳答案

TypeScript(和 javascript)中的

throw 可以抛出任意表达式。与 ifwhilefor 不同,throw 后面可以紧跟表达式,而无需将表达式包围在 ().

从表达式语义的角度来看,这两个表达式是相同的:

e

(e)

关于typescript - typescript 中的 "throw(e)"和 "throw e"有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764616/

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