我有一些長時間運行的節點代碼,在一段時間後會打印[RangeError: Maximum call stack size exceeded]
錯誤並繼續無限期地執行此操作。節點錯誤堆棧跟蹤未定義
要追查什麼遞歸調用導致這(我無法找到任何地方遞歸,我沒有使用任何一個setTimeout
或process.nextTick
),我這樣做:
process.on('uncaughtException', function(error) {
console.log(error);
console.log(error.stack);
});
這引起了錯誤,但stack
財產是undefined
!我嘗試拋出自己的錯誤,並且stack
屬性顯示了預期的堆棧。節點在堆棧溢出錯誤中不應該有stack
?我如何確定哪些呼叫導致了這種情況?
'console.trace'產生更有意義的東西嗎? – Wex
嘗試'console.log(error.stack || error' ...如果'error'參數的類型是'Error',這將會打印堆棧...如果它的類型是'String',它會直接打印這個消息...... –