Mic*_*ing 1 exception-handling typescript
我找不到有关打字稿中的抛出语法的任何信息,所以我只是想知道这两个语义是否在语义上相同?从我测试的两种方法保持callstack.
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);
}
Run Code Online (Sandbox Code Playgroud)
在C#中这样做会踩到callstack,所以我只想绝对肯定.正确的C#方式是这样的:
try {
throw new Exception("You can't recover from this.");
catch (Exception e)
_logger.LogError(e);
throw;
}
Run Code Online (Sandbox Code Playgroud)
throw在TypeScript(和javascript)中可以抛出任意表达式.不同于if,while并且for,throw可以立即跟随表达式,而不包围表达式().
从表达语义的角度来看,这两个表达式是相同的:
e
Run Code Online (Sandbox Code Playgroud)
和
(e)
Run Code Online (Sandbox Code Playgroud)