typescript :如何从错误对象获取堆栈跟踪gt

uajslkp6  于 2023-01-27  发布在  TypeScript
关注(0)|答案(1)|浏览(287)

使用Typescript,我如何从错误中只获得堆栈跟踪?
例如,请看下面的示例代码:

} catch (err: any) {
    console.log(err.message);
    console.log(err.stackTrace);
    console.log(err.stack);
    console.log(err);
}

看看上面代码的结果:

我应该使用什么方法或属性来只获取堆栈跟踪的3行?

1) err.message:  provides he error message as expected. 
2) err.stackTrace: provides and object but I'm not sure exactly what. 
3) err.stack: and "err" return exactly the same thing - everything.

谢谢你。

42fyovps

42fyovps1#

要获得堆栈跟踪,我们可以使用Error示例的stack属性,如MDN Web Docs中所述。
让我们将以下操作的结果存储在一个名为stack的变量中。让我们利用堆栈中的换行符将行分隔为数组元素。之后,我们可以slice()数组以忽略第一个索引(即错误消息),并根据需要获取接下来的3个元素以包括3行。因为我们使用slice(1, 4),所以我们保证堆栈跟踪最多3行。之后,我们可以使用join("\n")将这些数组元素连接到字符串中,并使用换行符连接。
代码如下所示:

const stack = err.stack.split("\n").slice(1, 4).join("\n");
console.log(stack); // to view the result

相关问题