gpt4 book ai didi

javascript - TypeScript 中的异常嵌套/包装

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:09 24 4
gpt4 key购买 nike

在 TypeScript 中嵌套/包装异常(原因)是否可能/常见做法,就像在 Java 中一样?

try {
// do something
} catch (e) {
throw new MyException("Exception while doing something", e);
}

我的意思是,为 MyException 设置一个自定义构造函数,将 e arg 作为 cause 传递可能不是问题,但是稍后报告(打印)堆栈跟踪怎么样?

最佳答案

如果您正在寻找堆栈跟踪,那么您可以这样做:

function normalizeError(e: any): Error {
if (e instanceof Error) {
return e;
}

return new Error(typeof e === "string" ? e : e.toString());
}

然后:

try {
throw [1, "string", true];
}
catch (e) {
e = normalizeError(e);
console.log(e.stack);
}

这会打印出如下内容:

Error: 1,string,true
at normalizeError (:5:12)
at :11:9

如果你的目标是 es6 那么你可以扩展 Error 类而不是这个 normalizeError 函数,但是如果你不能定位es6 那么你应该避免扩展原生类。

关于javascript - TypeScript 中的异常嵌套/包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643354/

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