我找不到关于 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
可以抛出任意表达式。与 if
、while
和 for
不同,throw
后面可以紧跟表达式,而无需将表达式包围在 ()
.
从表达式语义的角度来看,这两个表达式是相同的:
e
和
(e)
关于typescript - typescript 中的 "throw(e)"和 "throw e"有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764616/