这次我们将讨论error和堆栈追踪以及如何使用它们。 有时候人们并不关注这些细节,但这方面的知识肯定有用,尤其是当你正在编写与测试或errors相关的库。例如这个星期我们的chai中出现了一个令人惊叹的Pull Request,它大大改进了我们处理堆栈跟踪的方式,并在用户断言失败时提供了更多的信息。 操作堆栈记录可以让你清理无用数据,并集中精力处理重要事项。此外,当你真正弄清楚Error及其属性,你将会更有信心地利用它。 本文开头部分或许太过于简单,但当你开始处理堆栈记录时,它将变得稍微有些复杂,所以请确保你在开始这个那部分章节之前已经充分理解前面的内容。 堆栈调用如何工作在谈论errors之前我们必须明白堆栈调用如何工作。它非常简单,但对于我们将要深入的内容而言却是至关重要的。如果你已经知道这部分内容,请随时跳过本节。 每当函数被调用,它都会被推到堆栈的顶部。函数执行完毕,便会从堆栈顶部移除。 这种数据结构的有趣之处在于最后一个入栈的将会第一个从堆栈中移除,这也就是我们所熟悉的LIFO(后进,先出)特性。 这也就是说我们在函数 假设你有下面这样的代码:
在上面这里例子中,当执行 当
我们可以利用
在Node REPL服务器上运行上述代码会得到如下结果:
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|