Kar*_*pka 7 javascript error-handling exception-handling exception typescript
在 TypeScript 中嵌套/包装异常(原因)是否可能/常见做法,例如在 Java 中?
try {
// do something
} catch (e) {
throw new MyException("Exception while doing something", e);
}
Run Code Online (Sandbox Code Playgroud)
我的意思是,仅仅有一个自定义 ctor for 可能不是问题MyException
,将e
arg 作为传递cause
,但是稍后报告(打印)堆栈跟踪呢?
如果您正在寻找堆栈跟踪,那么您可以这样做:
function normalizeError(e: any): Error {
if (e instanceof Error) {
return e;
}
return new Error(typeof e === "string" ? e : e.toString());
}
Run Code Online (Sandbox Code Playgroud)
进而:
try {
throw [1, "string", true];
}
catch (e) {
e = normalizeError(e);
console.log(e.stack);
}
Run Code Online (Sandbox Code Playgroud)
这将打印类似的内容:
错误:1,字符串,true
,正常化错误(:5:12)
,时间:11:9
如果您有目标es6
,那么您可以扩展该类Error
而不是使用此normalizeError
函数,但如果您不能目标es6
,那么您应该避免扩展本机类。
归档时间: |
|
查看次数: |
1701 次 |
最近记录: |