代码之家  ›  专栏  ›  技术社区  ›  Chris Brandon

如何使节点在堆栈溢出时中断?

  •  0
  • Chris Brandon  · 技术社区  · 2 年前

    假设我有一个JS脚本,如下所示:

    function recurse() {
        return recurse();
    }
    recurse();
    

    如果我跑步 node recurse.js ,它当然会失败,并出现“超出最大调用堆栈大小”错误。

    如何让调试器(例如,在VS代码中运行)在发生此异常之前中断,以便查看堆栈中的内容?我可以附加一个断点,但遇到此异常将花费很长时间。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Eduardo Thales    2 年前

    Maximum call stack size exceeded 是一个例外。将调用包装为try/catch,并在catch块内添加一个停止点,如下所示:

    function recurse() {
        return recurse()
    }
    
    try {
      recurse()
    } catch(e) {
      console.log(e) // <- stop here
    }